unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls; type TForm1 = class(TForm) pnl1: TPanel; btn1: TButton; btn2: TButton; procedure btn1Click(Sender: TObject); procedure btn2Click(Sender: TObject); private { Private declarations } public { Public declarations } end; where Form1: TForm1; editm:array of tedit; implementation {$R *.dfm} // dynamically create EDIT control Procedure TForm1.btn1Click (Sender: TObject); var i,d,j:integer; begin d:=0; j:=3; setlength(editm,j); for i:=0 to j-1 do begin editm[i]:=tedit.Create(self); editm[i].Parent:=pnl1; editm[i].Width:=120; editm[i].Height:=20; editm[i].Left:=0; editm[i].Top:=0+d; editm[i].Name:= 'edit'+inttostr(i); editm[i].Text:= 'edit'+inttostr(i); editm[i].Visible:=true; D: = D + 20 is ; End ; End ; // the EDIT control destruction created Procedure TForm1.btn2Click (Sender: TObject); var i:Integer; begin for i:=0 to 2 do begin editm[i].free; end; end; end.