Внешний вид сайта:

Создание Lookup поля во время выполнения

Создание поля поиска во время выполнения отличается только немного от создания любого стандартного объекта 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. 

Комментарии

Нет комментариев. Ваш будет первым!