Лабораторная работа №5: Запросы и оформление запросов кнопками, доступ к полям и типам данных
Цель работы: Оформление, активизация, запроса, получение доступа с помощью кнопок
1. Создайте форму, как показано на рисунке:
2. Для компонент BitButton1 и BitButton2 установите свойство Glyph ... откроется окно, нажмите Load, в окне выбора файла откройте путьc:Program files\common files\ borlandChared\Images\Buttons, выберите два файла arrow1d.bmp для BitButton1, arrow1u.bmp для BitButton2. Для Button1 наберите заголовок «Подключиться», эта кнопка служит для того, чтобы при нажатии этой кнопки активизировалась таблица запроса и по записям можно было перемещаться без DBNavigatora. Для Button2 наберите заголовок «Выход».
3. Наберите следующий код для BitButton1:
procedure TForm1.BitBtn1Click(Sender: TObject);
begin
Form1.Query1.Next;
CheckPosition;
end;
Эта программа выполняет переход вниз от записи к записи. Тогда BitBtn2 становится неактивной, она активизируется если перейдете на самую последнюю запись
4. Наберите следующий код для BitButton2:
procedure TForm1.BitBtn2Click(Sender: TObject);
begin
Form1.Query1.Prior;
CheckPosition;
end;
Эта программа выполняет переход вверх от записи к записи. Тогда BitBtn1 становится неактивной, она активизируется если перейдете на самую первую запись.
5. Вставьте имя процедуры между
private
{ Private declarations }
Procedure CheckPosition;
public
{ Public declarations }
6. Напишите для него код:
Procedure TForm1.CheckPosition;
begin
if Form1.Query1.Eof then Form1.BitBtn1.Enabled:=false else
Form1.BitBtn1.Enabled:=true;
if Form1.Query1.Bof then Form1.BitBtn2.Enabled:=false else
Form1.BitBtn2.Enabled:=true;
end;
Записи из запроса можно вывести даже в компонент Label. Для этого на форму установите два Label. Добавьте эти строки вконец процедуры:
Label1.Caption:=Form1.Query1.Fields[1].AsString;
Label2.Caption:=Form1.Query1.FieldList[2].AsString;
7. Для кнопки «Подключиться» наберите программу:
procedure TForm1.Button1Click(Sender: TObject);
begin
Form1.Query1.Active:=true;
Form1.Button1.Enabled:=false;
CheckPosition;
Button3.Enabled:=True;
end;
8. Для Button2 наберите программу:
procedure TForm1.Button2Click(Sender: TObject);
begin
if Form1.Query1.Active then query1.Close;
Application.Terminate;
end;
9. Вставьте еще одну кнопку Button3, для него наберите программу:
procedure TForm1.Button3Click(Sender: TObject);
begin
Form2.ShowModal;
end;
Выполняет переход на вторую созданную форму.
10.Создайте форму Form2, выполнив команду File – New – Form.
Окно формы2
Установите следующие свойства:
Caption = Поля набора данных
Position= poScreenCenter
BorderStyle= bsDialog
11. Вставьте одну кнопку Button1. Установите следующие свойства:
Caption=Выход
ModalResult=mrOK
12. Вставьте два экземпляра ListBox1, ListBox2.
Для ListBox1 наберите программу:
procedure TForm2.ListBox1Click(Sender: TObject);
var FKind:string;
CField:TField;
begin
If ListBox1.ItemIndex=-1 then exit;
ListBox2.Items.Clear;
CField:=Form1.query1.FieldByName(ListBox1.Items[ListBox1.ItemIndex]);
ListBox2.Items.Add('Имя поля-'+CField.DisplayName);
ListBox2.Items.Add('Значение поля- '+CField.DisplayText);
CASE CField.FieldKind of
fkData: FKind:='Поле таблицы БД';
fkCalculated: FKind:='Расчетное';
fkLookUp: FKind:='поле поиска';
fkInternalCalc: FKind:='расчетное с хранением результатов в наборе';
fkAggregate: FKind:='аггрегирование';
else
FKind:='наизвестный тип поля';
end;
ListBox2.Items.Add('Вид - '+FKind);
ListBox2.Items.Add('Тип поля - '+FieldTypeNames[CField.DataType]);
ListBox2.Items.Add('Размер (байт) -'+IntToStr(CField.DataSize));
ListBox2.Items.Add('Номер -'+ IntToStr(CField.FieldNo));
if CField.CanModify then
ListBox2.Items.Add('редактируемое') else
ListBox2.Items.Add('нередактируемое');
End;
13. Находясь на форме2 перейдите на вкладку Events окна Object Inspector. Найдите в списке методов FormShow и щелкните дважды по нему, откроется обработчик событий. Для него наберите код:
procedure TForm2.FormShow(Sender: TObject);
var i:integer;
begin
Form2.ListBox1.Items.Clear;
Form2.ListBox2.Items.Clear;
for i:=0 to Form1.Query1.Fieldcount-1 do
Form2.ListBox1.Items.Add(Form1.query1.fields[i].fieldName);
end;
Запустите программу и просмотрите результат
Материалы на данной страницы взяты из открытых источников либо размещены пользователем в соответствии с договором-офертой сайта. Вы можете сообщить о нарушении.