各位XDJM
我动态添加了一些Panel,请问如何释放掉?Function CreatePanelEX( aOwner:TPanel;Item_caption :string;Pnl : TPanel;SetMenu :TPopupMenu;i:integer) :TPanel;
begin
Result := TPanel.Create(aOwner);
result.parent:=PNL;
result.left:=55;
result.top:=20;
result.MouseDownDrag :=true;
result.caption:=Item_caption;
result.PopupMenu := SetMenu;
result.Name :='Label_item'+inttostr(i);
end;
//通过点击Button添加Panel
procedure TForm1.Btn_additemClick(Sender: TObject);
begin
Item_Add := EDT_ItemAdd.Text ;
MyLabelPnllist:=CreatePanelEX(MyLabelPnl,Item_Add,PNL_Format,setmenu,Count) ;
Count:=Count+1;
label3.Caption :=MyLabelPnllist.Name;
end;
我动态添加了一些Panel,请问如何释放掉?Function CreatePanelEX( aOwner:TPanel;Item_caption :string;Pnl : TPanel;SetMenu :TPopupMenu;i:integer) :TPanel;
begin
Result := TPanel.Create(aOwner);
result.parent:=PNL;
result.left:=55;
result.top:=20;
result.MouseDownDrag :=true;
result.caption:=Item_caption;
result.PopupMenu := SetMenu;
result.Name :='Label_item'+inttostr(i);
end;
//通过点击Button添加Panel
procedure TForm1.Btn_additemClick(Sender: TObject);
begin
Item_Add := EDT_ItemAdd.Text ;
MyLabelPnllist:=CreatePanelEX(MyLabelPnl,Item_Add,PNL_Format,setmenu,Count) ;
Count:=Count+1;
label3.Caption :=MyLabelPnllist.Name;
end;
type
TForm1 = class(TForm)
private
PnList: TList;
end;procedure TForm1.Form1Create(Sender: TObject);
begin
PnList := TList.Create;
end;procedure TForm1.Form1Destroy(Sender: TObject);
var
i: integer;
begin
for i := 0 to PnList.Count - 1 do
begin
TPanel(PnList[i]).Free;
end;
PnList.Free;
end;procedure TForm1.Btn_RemoveAllClick(Sender: TObject);
var
i: integer;
begin
for i := 0 to PnList.Count - 1 do
begin
TPanel(PnList[i]).Free;
end;
PnList.Clear;
end;procedure TForm1.Btn_additemClick(Sender: TObject);
begin
Item_Add := EDT_ItemAdd.Text ;
MyLabelPnllist:=CreatePanelEX(MyLabelPnl,Item_Add,PNL_Format,setmenu,Count) ;
pnList.Add(MyLabelPnllist);////加到List里
Count:=Count+1;
label3.Caption :=MyLabelPnllist.Name;
end;
//都是随手的代码,可能有问题,你改改就可以了
Form1: TForm1;
count:integer=0;implementation{$R *.dfm}procedure TForm1.Button1Click(Sender: TObject);
var mypanel:Tpanel;
begin
Mypanel:=Tpanel.create(self);
Mypanel.parent:=form1;
count:=count+10;
Mypanel.Left:=count+10;
Mypanel.Top:=count;
Mypanel.caption:=format('panel%d',[count]);
Pnlist.Add(mypanel);////加到List里end;procedure TForm1.FormCreate(Sender: TObject);
begin
Pnlist:=Tlist.create;
end;procedure TForm1.FormDestroy(Sender: TObject);
var
i: integer;
begin
for i := 0 to pnlist.Count - 1 do
begin
TPanel(Pnlist[i]).Free;
end;
Pnlist.Free;
end;procedure TForm1.Button2Click(Sender: TObject);
var i: integer;
begin
i:=StrToInt(Edit1.Text); //在窗体上添加EDIT控件
TPanel(Pnlist[i]).Free; //指定第几个需要释放
end;end.如果有更好的指定控件的方法,继续学习