var
lab:TLabel;
begin
lab:=tlabel.create(Self);
lab.parent:=form1;
lab.Name:='lab1';
lab.caption:='aaaaaaaaaaa'; lab:=tlabel.create(Self);
lab.parent:=form1;
lab.Name:='lab2';
lab.caption:='bbbbbb';
end;
点击按钮如何把生成的两个label删除?
lab:TLabel;
begin
lab:=tlabel.create(Self);
lab.parent:=form1;
lab.Name:='lab1';
lab.caption:='aaaaaaaaaaa'; lab:=tlabel.create(Self);
lab.parent:=form1;
lab.Name:='lab2';
lab.caption:='bbbbbb';
end;
点击按钮如何把生成的两个label删除?
解决方案 »
- [分享]解决新版DEV编译体积大的方法(非带包)
- 求设置一个无边框风格的窗体的WINDOWS消息(此窗体是外部EXE程序)
- 字符串分行问题
- d7中有个组件是windowsmediaplayer,请问如何使用?
- 在Tdatabase中数据库别名属性与 databasename属性有什么区别啊?数据库别名是不是多余的?
- 查询小问题,请高手指教!
- 发现不能给500分,只好以后再专门发贴送分了。分数加挑战(求最小割集)
- 如何调用系统右键菜单
- 在Delphi里复制,剪切,粘帖 英文怎么表示?
- 请问ActiveX中的数据处理结果反馈给页面?
- 如何利用delphi中treeview的data属性
- 曲线问题,我用的sp_xyPlot/sp_xyLine,当不知道怎么取Y轴坐标
当然你也可以FindComponent('lab1').Free;但前提是你这样lab:=tlabel.create(Self);创建的
FList: TComponentList;var
lab:TLabel;
begin
lab:=tlabel.create(Self);
lab.parent:=Self;
lab.Name:='lab1';
lab.caption:='aaaaaaaaaaa';
FList.Add(lab); lab:=tlabel.create(Self);
lab.parent:=Self;
lab.Name:='lab2';
lab.caption:='bbbbbb';
FList.Add(lab);
end;
var
lab:TLabel;
begin
lab:=tlabel.create(Self);
lab.parent:=form1;
lab.Name:='lab1';
lab.caption:='aaaaaaaaaaa';
List.Add(lab); lab:=tlabel.create(Self);
lab.parent:=form1;
lab.Name:='lab2';
lab.caption:='bbbbbb';
List.Add(lab);
end;
点击时就释放:
var
i: Integer;
begin
for i := List.Count - 1 downto 0 do
begin
TLabel(List[i]).Free;
List.Delete(i);
end;
end;最后在Form.OnDestroy事件中释放List.Free;
FindComponent('lab1').Free也可以,也许找的速度可能会慢点,但是影响不大
begin
if Self.Components[iIndex] is TLabel then
(Self.Components[iIndex] as tLabel).Destroy;
end;