动态按钮的删除问题!

上海老李 2002-09-27 05:33:34
我在一个函数中动态创建了一个按钮数组,最大值是10,可是这个函数要经常调用!每次创建的数目也不一样多!而在创建后,再调用就不行是因为这个控件名称已存在!要如何在再次调用函数时把原先创建的不知个数的按钮删掉!我建的是b1,b2等!
...全文
30 16 打赏 收藏 举报
写回复
16 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
kuangke 2002-09-28
while (Form1.componentcount<>0) and (判断是按钮类型) do
Form1.components[0].free;
  • 打赏
  • 举报
回复
blazingfire 2002-09-28
for i:=1 to 10 do
if TButton(s[i])<>nil then
begin
TButton(s[i]).Free;
TButton(s[i]):=nil;
end;
  • 打赏
  • 举报
回复
Almzg_0 2002-09-28
那你就用findcomponent(“b1”)等去找,找到了就释放了
  • 打赏
  • 举报
回复
上海老李 2002-09-28
上边还是不行!
  • 打赏
  • 举报
回复
1nbud 2002-09-27
for i:=1 to 10 do
if Assigned(s[i])then FreeAndNil(s[i]);
  • 打赏
  • 举报
回复
上海老李 2002-09-27
如果是已建的按钮,上边办法可以!但没建的数组按钮却不行!请帮帮忙!
  • 打赏
  • 举报
回复
上海老李 2002-09-27
没人知道了吗?
  • 打赏
  • 举报
回复
上海老李 2002-09-27
for i:=1 to 10 do begin
if Assigned(s[i]) then begin
s[i].Free;
s[i]:=nil;
end;
end;
  • 打赏
  • 举报
回复
sjhua 2002-09-27
用动态数组试试
  • 打赏
  • 举报
回复
上海老李 2002-09-27
因为它不一定是存在的,楼上那位,是存在的可以!
  • 打赏
  • 举报
回复
wanderung 2002-09-27
先free
然后赋值为nil
  • 打赏
  • 举报
回复
上海老李 2002-09-27
救命,就这几句话?怎么办?
  • 打赏
  • 举报
回复
santwy 2002-09-27
for i:=ComponentCount downto 1 do
begin
if Components[i].ClassNameIs('TButton') then
TButton(Components[i]).Free;
end;
  • 打赏
  • 举报
回复
上海老李 2002-09-27
for i:=1 to 10 do begin
if Assigned(s[i]) then begin
s[i].Free;
s[i]:=nil;
end;
end;
这个为什么不行?
  • 打赏
  • 举报
回复
yang6130 2002-09-27
调用free不就行了
可以用Assigned测试是否为nil
  • 打赏
  • 举报
回复
上海老李 2002-09-27
没人会吗?
  • 打赏
  • 举报
回复
相关推荐
发帖
Delphi

5124

社区成员

Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
帖子事件
创建了帖子
2002-09-27 05:33
社区公告
暂无公告