关于动态控件内存释放问题,大家都来参与!!!

cmt123 2003-08-10 08:51:39
procedure TForm1.Button1Click(Sender: TObject);
var
dxCheckEditself:array of TdxCheckEdit;
n,m:integer;
begin
for n:=0 to dbgrid1.ControlCount-1 do
dbgrid1.Controls[n].Visible:=false;
setlength(dxCheckEditself,14);
for m:=0 to 13 do
begin
if assigned(dxCheckEditself[m]) then
freeandnil(dxCheckEditself[m]);
dxCheckEditself[m]:=TdxCheckEdit.Create(self);
dxCheckEditself[m].Parent:=DBGrid1;
dxCheckEditself[m].Left:=361;
dxCheckEditself[m].Width:=68;
dxCheckEditself[m].Top:=16+18*m;
dxCheckEditself[m].ReadOnly:=true;
dxCheckEditself[m].Alignment:=taCenter;
if m mod 2=0 then
dbgrid1.Canvas.Brush.Color:=rgb(205,214,177);
if m mod 2<>0 then
dxCheckEditself[m].Color:=rgb(232,236,219);
//dxCheckEditself[m].Style.Shadow:=true;
dxCheckEditself[m].Visible:=true;
end;
end;

当我连续点击60次以上时,就会出现内存不足,看看是怎么回事啊!!!
...全文
32 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
数字蛋糕 2003-08-11
  • 打赏
  • 举报
回复
你的数组是一个局部变量,所以会出问题。
把它改成全局的或者是Form的成员。
cmt123 2003-08-10
  • 打赏
  • 举报
回复
我已经在点击时就会先判断后释放
李_军 2003-08-10
  • 打赏
  • 举报
回复
用完后要释放,你一直都是增加当然会这样
ltysunde 2003-08-10
  • 打赏
  • 举报
回复
在最后加上释放代码再测试一下!
应该不会有问题了。
fenglaile 2003-08-10
  • 打赏
  • 举报
回复
没有看见你释放呀,用完后一定要释放的!
大地精灵 2003-08-10
  • 打赏
  • 举报
回复
用完后,Free掉就行了

5,388

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧