Mega Code Archive

 
Categories / Delphi / Examples
 

Adding fields at run-time

unit Unit1; { This program allows fields to be added on the fly. } interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, DB, DBTables, Grids, DBGrids, StdCtrls; type TForm1 = class(TForm) Table1: TTable; DataSource1: TDataSource; DBGrid1: TDBGrid; Button1: TButton; Edit1: TEdit; Label1: TLabel; Label2: TLabel; Memo1: TMemo; procedure Button1Click(Sender: TObject); procedure FormCreate(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.DFM} procedure TForm1.Button1Click(Sender: TObject); begin Memo1.Clear; if StrComp(PChar(Edit1.Text), PChar(''))= 0 then begin Memo1.Lines.Add('Invalid field name'); Exit; end else begin with table1 do begin Close; // table must be closed !!! with FieldDefs do begin try Add(Edit1.Text, ftInteger, 0, False); Except On EDatabaseError do begin Memo1.Lines.Add('Error adding field ' + Edit1.Text + ' to table.'); Memo1.Lines.Add('Maybe ''' + Edit1.Text + ''' already exists as a field name'); end; end; CreateTable; Open; end; end; end; end; procedure TForm1.FormCreate(Sender: TObject); begin Table1.Open; end; end.