试试在Form.OnShow里创建
if img[i]=nil then img[i].Create(self);
释放时if img[i]<>nil then img[i].Free;
if img[i]=nil then img[i].Create(self);
释放时if img[i]<>nil then img[i].Free;
解决方案 »
- 动态改变cxgrid数据集问题
- 数据库连接时提示如下问题
- 我的DELPHI7.0怎么没有汉化了?
- 我想通过网络向另外一台机子的串口com1写数据,应到怎么写?
- 高手看过来,关于 midas .Thank thank you !!
- Happy new Year. Every programer.
- 请问怎样找出一个表中存在的重复记录
- 高分征解
- QRChart在生成统计图表的问题
- 怎样知道DriveComboBox中选定的是软驱或光驱,即未准备好的驱动器都没有被选中。
- ADOTable如何在Post后再更新而不必Close再Open?
- 各位大虾,在DELPHI下可以达到协议级别的编程吗?我想用DELPHI做TCP、IP的编程
再释放 img
例外释放一个对象最好判断一下是否为Nil,释放时除了调用Free方法外,最好赋值为Nil。
如
if ComponentCreate <> nil then begin
ComponentCreate.Free
ComponentCreate := nil;
end;
解决问题应当把真正原因找到,从出错原因到解决办法都能够解释圆满。我不大赞同whhehai的解决办法,属于涂抹是消除,这样隐患并没有根除。
lab[i]:=TLabel.create[self];
lab[i].Parent:=Self; //加上再试试
with img[i] do
begin
Free;
end;
Tobject.free;
再释放 img
似乎不是个好主意,我试了,出错频率更高了,
先释放 img
再释放 lab
平均点击7次出一次错,现在改为:
先释放 lab
再释放 img
平均点击1次出一次错了,赫赫,没办法。
问题是我每次进入这个窗体时,img和lab的数目是根据不同的情况改变的,所以不得不free,我真的不是捣乱,谢谢
在你的窗体的OnClose事件中释放它们并加上Action := caFree彻底释放窗体,
每次想进入此窗体时都要重新创建此窗体。
img[i].nil
lab[i].free
lab[i].nil