我定义了一个数组
private
Info:array [0..27,0..17] of TQRLabel;
然后在formcreat中创建
info[i,j]:=TQRLabel.Create(self);
但我第二次调用时,它还保留的上次的信息(窗体关闭时没有释放)
请问要怎样释放阿?
private
Info:array [0..27,0..17] of TQRLabel;
然后在formcreat中创建
info[i,j]:=TQRLabel.Create(self);
但我第二次调用时,它还保留的上次的信息(窗体关闭时没有释放)
请问要怎样释放阿?
解决方案 »
- LabeledEdit中如何让特定的字符高亮度显示
- 为什么我设置clientdataset的active为true的时候会提示这个?
- delphi 如何调用驱动程序(.dll文件)
- 对于memo1.Lines.LoadFromFile('E:\work\mail\1.htm');,字符数有限制吗? 在线!! 解决马上结!!!
- 高手提点一下,怎么判断一个小时不动鼠标和键盘呢
- 救命啊!高手指点啊!错误:当前提供程序不支持从单一执行返回多个记录集!
- 如何的MDI的父窗体中插入图片????????
- 谁能提供DBGridxxs控件
- 貨幣money阿拉伯數字如何轉成英文
- 用delphi创建基类
- excel导入到delphi 日期格式转换问题,求助!!!
- CxPivotGrid难题
try
for i:=0 to 数组的最大个数 do
begin
if self.Components[i] is TQRLabel then
TQRLabel(self.Components[i]).Free;
end;
Except
exit;
end;或者
for I := 1 to 27 do
begin
for j:=0 to 17 do
info[i,j].Parent:=nil;
info[i,j].Free;
end;前面一个不知道行不行,但后面一个可以的,亲测过的。
========================
这句静态的数组可以这样写吗?动态对那样写吧
你是在formcreat中创建 那再一次运行时 又重新创建了才对 怎么会保留上次的记录呢
或者你用的是非模态窗体 关闭只是隐藏起来 而不是销毁 下次打开的时候并没有重新创建 所以保留了上次的记录
for i:= Low(Info) to High(Info) do
if (Info[i] <> nil) then TQRLabel(Info[i]).Free;
info[i,j]:=TQRLabel.Create(self);
改到FormShow里面
info[i,j]:=TQRLabel.Create(self);
在FormClose中加下
for I := 1 to 27 do
for j:=0 to 17 do
info[i,j].Free;
所以在窗体没有Destroy,是不会释放的
你可以在需要显示前分配内存,把前一次释放掉