关于创建控件组资料释放问题

jwchc 2000-02-03 11:33:00
我用以下程序新创建一组控件 for i:=1 to buttoncaption.Count do
begin
MyB[I]:=TSpeedButton.Create(self);
MyB[I].Parent:=Panel3;
MyB[i].Top:=0;
MyB[i].Left:=(i-1)*30+i;
MyB[i].Height:=Panel3.Height;
MyB[i].flat:=true;
MyB[i].Width:=30;
end;
释放时用:
for i:=buttoncaption.count downto 0 do
myb[i].Free;


程序运行正常,退出释放资料时就出错,请求帮助!
...全文
127 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
Michael 2000-02-03
  • 打赏
  • 举报
回复
用Free释放时,最好选检验一下。
barton 2000-02-03
  • 打赏
  • 举报
回复
firing_sky真是眼尖,发现你的序数不对。
不过最好的方法是不要去释放它,因为你的Form可Panel3会自动释放
它的子控件。当然,释放也没错,只是有些多余。
Firing_Sky 2000-02-03
  • 打赏
  • 举报
回复
当然会出错了,创建的时候是i:=1 到 buttoncaption.count
释放的时候是i:=buttoncaption.count 到 0
改成

for i:=buttoncaption.count downto 1 do
myb[i].Free;

建议这一块用Try Except块包起来

try
for i:=buttoncaption.count downto 1 do
myb[i].Free;
except
showmessage('释放失败!');
end;

5,379

社区成员

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

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