Приведенный ниже пример демонстрирует технологию полного воспроизведения доступных полей в компоненте TTable или TQuery. Программа извлекает информацию о доступных полях и отображает ее в компоненте TListBox; эта информация необходима для динамического построения потомков TField. В данном примере источником данных служит компонент TTable, но той же цели может служить и TQuery (TTable и TQuery для доступа к полям таблицы используют одно и то же свойство Fields).
procedure TForm1.Button1Click(Sender: TObject); var i: Integer;F: TFieldDef;D: String;begin Table1.Active := True;ListBox1.Items.Clear; with Table1 do beginfor i := 0 to FieldDefs.Count - 1 do beginF := FieldDefs.Items[i];case F.DataType offtUnknown: D := 'Unknown';ftString: D := 'String';ftSmallint: D := 'SmallInt';ftInteger: D := 'Integer';ftWord: D := 'Word';ftBoolean: D := 'Boolean';ftFloat: D := 'Float';ftCurrency: D := 'Currency';ftBCD: D := 'BCD';ftDate: D := 'Date';ftTime: D := 'Time';ftDateTime: D := 'DateTime';ftBytes: D := 'Bytes';ftVarBytes: D := '';ftBlob: D := 'BLOB';ftMemo: D := 'Memo';ftGraphic: D := 'Graphic';elseD := '';end;ListBox1.Items.Add(F.Name + ', ' + D);end;end;Table1.Active := False;end; |
[000533]