//FORM上放四个按钮 和一个Tpanel
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, Db, DBTables, ComCtrls, ExtCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
Button2: TButton;
Button3: TButton;
Button4: TButton;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Button4Click(Sender: TObject);
private
tempedit:tedit;
PageControl1:TPageControl;
panel1:tpanel;
procedure EditChange(Sender:TObject);//响应 EDIT 改变的事件声明
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
a:array[1..10] of TTabSheet;
i:byte;
implementation
{$R *.DFM}
procedure TForm1.Button1Click(Sender: TObject);
begin
tempedit.Free ;
tempedit:=nil;
panel1.free;
panel1:=nil;
end;
//响应 EDIT 改变的事件
procedure tform1.EditChange(sender:tobject);
begin
showmessage('edit on change');
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
panel1:=tpanel.Create (self);
panel1.Parent :=self;
tempedit:=tedit.Create (panel1);//把EDIT生成到panel1上而不是在form中。
with tempedit do
begin
left:=panel1.Left + 10;
top:=panel1.top+20;
tag:=1;
text:='在这儿改变一下看看' ;
tempedit.OnChange:=editchange;//指定 EDIT 改变的事件 到指定的处理过程中去
parent:=panel1;
tempedit.ParentWindow :=panel1.Handle ;
end;
end;
procedure TForm1.Button3Click(Sender: TObject);
begin
pagecontrol1:=tpagecontrol.Create (self);
pagecontrol1.Top :=100;
pagecontrol1.Parent :=self;
for i:=0 to 10 do
begin
a:=ttabsheet.Create(nil);
with a do
begin
pagecontrol:=pagecontrol1;
name:='a'+inttostr(i);
caption:= 'a'+inttostr(i);
end;
end;
end;
procedure TForm1.Button4Click(Sender: TObject);
begin
//for i:=0 to 10 do a.Destroy ;
for j:=form1.ComponentCount-1 downto 0 do
if (form1.Components[j] is ttabsheet) then form1.Components[j].Destroy ;
//and (form1.components[j].Name =('a'+inttostr(i))
pagecontrol1.free;
pagecontrol1:=nil;
end;
end.