动态按钮的删除问题!

上海老李 2002-09-27 05:33:34
我在一个函数中动态创建了一个按钮数组,最大值是10,可是这个函数要经常调用!每次创建的数目也不一样多!而在创建后,再调用就不行是因为这个控件名称已存在!要如何在再次调用函数时把原先创建的不知个数的按钮删掉!我建的是b1,b2等!
...全文
60 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
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
  • 打赏
  • 举报
回复
没人会吗?

5,388

社区成员

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

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