Статьи
|
Создание поля поиска во время выполнения отличается только немного от создания любого стандартного объекта TField. Три свойства поля, которые должны быть установлены, чтобы функционировать как поле Lookup - LookUpDataset, LookUpKeyFields и LookUpResultField. Простой код ниже демонстрирует, как создать поле Lookup во время выполнения, используя две таблицы DBDEMOS - Customer.DB и Orders.DB .
Пример:
uses
Forms, Classes, Controls, StdCtrls, Db, DBTables, DBCtrls;
type
TForm1 = class(TForm)
Table1: TTable; // DBDemos customer table
Table2: TTable; // DBDemos orders table
Button1: TButton;
DBLookupComboBox1: TDBLookupComboBox;
DataSource1: TDataSource;
Table2CustNo: TFloatField;// объект CustNo ключевое поле, для Lookup
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
procedure TForm1.Button1Click(Sender: TObject);
begin
with TStringField.Create(Table2) do begin
FieldName := 'MyLookup';
FieldKind:= fkLookup;
DataSet := Table2;
Name := Dataset.Name + FieldName;
KeyFields:= 'CustNo';
LookUpDataset:= Table1;
LookUpKeyFields:= 'CustNo';
LookUpResultField:= 'Company';
DbLookupCombobox1.DataField:= FieldName;
DataSource1.DataSet:= Dataset;
Table2.FieldDefs.Add(Name, ftString, 20, false);
end;
DbLookupCombobox1.DataSource:= Datasource1;
Table1.Active:= True;
Table2.Active:= True;
end;
end.
По материалам http://delphi.3000.com
|