说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

我在Form1上动态创建了100多个TImage和200多个TLabel(不是控件数组,而是一个个创建的,设有唯一tag),怎样可以快速将他们全部删除,并

编辑:说三道四文库 发布时间:2017-02-27 07:47
HTML文档下载 WORD文档下载 PDF文档下载
我在Form1上动态创建了100多个TImage和200多个TLabel(不是控件数组,而是一个个创建的,设有唯一tag),怎样可以快速将他们全部删除,并释放其资源?
创建这些控件的代码如下:

  While not DM.ADOQuery1.Eof do
    begin
      img:=TImage.Create(Self);
      img.Picture.Assign(ImageRes.Picture);
      img.Transparent:=False;
      img.Parent:=BrowseForm;
      img.Cursor:=crHandPoint;
     ......................
for i:=Form1.ControlCount-1 downto 0 do begin
  if (Form1.Controls[i] is TLabel) or (Form1.Controls[i] is TImage) then 
    Form1.Controls[i].Free;
end;

感谢 tonylk(tony) 的回答,但是我试了一下,要大概2-3秒才能完全删除这几百个东西,有没有效率更高的办法?

还有:用downto而不是to是不是因为可以美观视觉效果?
已经很快了;
这种方法有个隐含的问题,也就是在循环变量中赋的是一个可变的值:
for i:=Form1.ControlCount-1 downto 0 do 
Form1.ControlCount-1 删一个控件,变一次,在这个例子里可能不会有问题,但在其他地方就有可能出错.最好改为repeat...until
还有一种方法是可以把这些控件都放到一个panel上,删除的时候,只要删除panel控件就可以了
如果要想更快的话,我有个方法,不过没有试,但应该比上面快.你创建一个TObjectList.
MyObjectList := TObjectList.Create;
这样你每创建一个你的控件,就把它加入到MyObjectList中.当需要Free时,只要把这个List放掉即可.如果为了界面好看.也许可以先把界面先隐含掉再做.
肯定比上面快吧.因为上面需要做运行时的类型判断.
to sunware():你说的问题不是问题
把Form1.ControlCount-1先赋给一个变量就可以了
proman() 的办法可取。
创建一个FPublicOwner(任何一种继承自TComponent的组件均可,如隐藏的Panel),
作为所有动态组件的Owner,
动态组件创建时将它们的owner设为FPublicOwner,
全部删除时直接删除FPublicOwner即可。
如:

img := TImage.Create(FPublicOwner);
lab := TLabel.Create(FPublicOwner);
...

FPublicOwner.Free;
晕,用DOWNTO 而不用TO,并不是因为美化效果(帮TONY回答你),你自己看看,DOWNTO 和 TO 有什么区别,最简单的,从10循环到100就用TO ,从100循环到10就要用DOWNTO,明白了吗?????
我同意 zzheaptech(风的往事) 的方法!
在生成这些控件的时候指定它的parent为一个Panel,删除的时候直接将Panel删除掉,就会很快的
关注……
proman() 的说法绝对正确,补充一点:创建控件时,1 create,2 将控件加入数组,并获得数组内的序号 ;3 将序号付给控件的tag值 这样的好处在于可以任意删除、添加、修改某一个控件。
楼上不错,学习
替楼主问个问题,如果删除了再想创建呢,如把panle删除了是不是也要创建一个Panel呢,如果我想把这些Label或image保存到库中呢。包括label的x,y
坐标,tag属性,属于何中类型,如果我用list保存这些控件,如何我删除的不是全部面是一个或几个,怎样从这个list中快速找到我删除的哪个或哪几个控
件呢,(前提是不允许用循环啊)@_@
呵呵,我有办法解决。


引用一个新窗口form2,在form2上创建,全部创建完后把form2载入到form1的某个panel里显示。要删除时,先将form2隐藏,再删除form2。

form2.parent := form1.panel1;
form2.show;
不闪烁,无需循环
日本很积极:富士通和NEC确认将推Tizen设备 10大支持移动“触摸操作”的JavaScript框架推荐 数据科学家的争夺及美分析学专业研究生院的建立 从开放走向封闭 Netflix宣布停止发布API key 《植物大战僵尸》神秘续作:可能是一款横版游戏 高性价比:GlassUp宣布支持Windows Phone系统 未挖掘到足够信息:非收集数据少,是利用率只有1% 下一个帝国:谷歌收购初创公司DNNresearch 苹果更新Apple Store应用,可查看零售店库存 开源软硬件:福特汽车的OpenXC计划 Temple Run:Oz稳坐付费榜头把交椅,迪士尼名利双收 Facebook开放图谱示好开发者 新增书籍电影等九项操作 源代码管理的六大视觉模式 最新算法面世 可提高云数据库性能 分析称平板电脑应用将占全球应用经济的35% 三大运营商对微信等OTT业务摊牌 Runscope联合创始人John Sheehan:API已死,API永存! IBM在京发布大数据白皮书 提出五项关键建议 Twitter开源Parquet 将支持Impala加速实时查询 使用Go代替Ruby,将服务器数量从30降到2 初创公司SwiftStack:“放在盒子里的S3” 赫尔辛基:全球移动游戏开发者的“黄埔军校” 不只属于三星!uMoove将发布“眼球追踪”SDK Android掌门人Andy Rubin宣布辞职 Chrome主管接任 openSUSE 12.3发布 弃MySQL拥抱MariaDB Meteor:让实时Web App成为主流 别了,Google Reader!谷歌于7月1日关闭服务 “天网”降临 机器人或将崛起? 涅槃重生:Qt 5 for Android预览版发布 Google Play将逐步移除广告拦截应用 Shapeways公司开放API 3D打印时代来临 关于Apache的使用,请多多指点,谢谢!分不多,怕以后钱不够用。 c++不支持**p吗? 有什么好的学习vc的书呢?我对c++有点熟悉,能让我快速上手vc的书籍1? 这个进制转换的程序写的很好~!但是我还是有点不明白的地方,请指教! 有什么好的学习vc的书呢?我对c++有点熟悉,能让我快速上手vc的书籍 ? 急!oracle management server无法启动啊! PB数据库的连接问题? 小问题,不知你能否解决? help,base64编码 大家好,我的问题很严重。。。 哪有mediaPlayer控件的中文开发资料,谢谢大家帮忙!!! 谁能和我说一下这个程序怎么作啊 寻找VRAMDir,在计算机应用文摘里写过! sql7+access的速度问题?大家的意见? 在CTreeCtrl中,如何知道用户点击已被选择了的Item? 哪里有bas5.0的下载??????????万分感激啊!! 打印问题谁能解决 谁用过‘北京利马公司’的ERP软件?评论??? 各位大哥帮帮我! 微软高手请进:CE下开发的三个(高难度)问题。。。 现在最好的jsp服务器是什么??最全面稳定的是哪一个?? 那位仁兄能给出一个24位bmp的图片转换成黑白的bmp图片的代码(别嫌分少啊) 对不住我的职业道德了…… 那位仁兄能给出一个24位bmp的图片转换成黑白的bmp图片的代码( 别嫌分少) 一个很菜的问题:怎样把文档类的数据传到CMainFrame 一个很有趣的问题,但是比较难哟,高手请进,一定给分!!!! 请问war是什么文件? 用LOTUS SCRIPT怎么样对修改一个文档中域的值?有没有代码? 各位,哪里有design patterns下载呀? 打印问题有谁能解决 十万火急,兄弟们过来帮帮忙........... 多字段模糊查询~~~谁会啊!! 高手请进 关于dialog和控件回车键消息处理的小问题 photoshop背景色的问题 虚函数能否做友元? const^:^ *********在dll文件中怎样打开一个窗口********* 自定义对话框 求解:怎样使用数据窗口能多页预览?有这项功能吗? 域的DNS有问题! 出现out of range 只是偶尔出现并不是经常出现?我的配置在里面 想问问大家关于微软认证的看法。 我有光驱上哪找 请问斑竹:c#中有类似exit(0)之类的函数吗, 请问谁有将可执行文件中的资源提取出来保存在新的rc文件中的源代码? PB数据库的连接分类解决问题? 数据窗口鼠标焦点为什么会遗失? 怎么用xp安装盘升级两千或酒吧下的wmp? 怎样得知ListBox中已经有多少项内容了? 看看大家关于微软认证的看法(只能给77,全给了) 我想了解一下关于现代兵器的资料 请根据人类起源的科学知识,说说人是怎么来的(答案最好简略一点) EI核心版是什么意思 芒硝的化学式是什么? 科学知识,如题 8.【1】食盐在20℃、100℃时制作成食盐的饱和溶液,则需溶解食盐的质量分别为 【 】克、【 】克.【2】若将100克水在100℃时制成饱和溶液,溶解食盐40克,然后将温度降到20℃,则 ei是什么意思 玻璃成分是二氧化硅,和水晶一样,都是晶体. 15、“知识即美德”中的“知识”指的是:() (3.00分) A.伦理学的知识 B.科学知识 C.对善的知识 各个传奇(热血、传奇世界、传奇3g)什么联系?有多少版本? 将3.22克芒硝溶于水中,要使每100个水分子中溶有1个Na+,则需水的质量为____克RT,最好有过程··或者解释芒硝的化学式Na2SO4·10H2O 问道天然玉,水晶石,琥珀怎么获得啊 生活中有哪些科学知识,又有什么科学原理 将3.22gNaSO4.10H2O溶于水中,要使每100个水分子中溶有1个Na+,则需水的质量为多少g写详细一点了 玻璃是二氧化硅做的吗?那为什么二氧化硅是晶体玻璃不是晶体? 玛瑙是什么 如上,垂直刚度是个什么概念?是不是垂直方向的变形? 有关宇宙的小知识 芒硝是什么不要长篇大论 悬架刚度为什么采用变刚度更好 有关宇宙的小知识!谁知道?详细一点也可以 2011年中国人口密度是美国人口密度的多少倍?最好是最新的数据 自行车架是铝合金的好还是什么高碳拉力钢和什么低碳拉力刚的好?其他材质的太贵了,对比以上三种就行了 水晶是什么物质?有什么性质?与玻璃有什么区别?与石头有什么区别?水晶有什么用途?价值如何? `日本人口密度大还是中国人口密度大? 中药皮硝的功效和主治, 得一石头,如图,硬度很高,尽管表面光滑,但可以轻易划伤玻璃,直径约为1cm.求鉴定. 什么是摩氏硬度 中药的皮硝与化学的皮硝是一种吗? 芒硝晶体是什么? 摩氏是硬度单位吗? 石墨硬度 20条生物小常识 急大约一个100字 要开学了 急 哪里买化工原料好?推荐一些质量有保证的,价格优惠点的 石墨的颜色,状态,硬度 题目里面出现的“缺镁培养液”指的是含镁量很高的培养液还是没有镁的培养液? 摩氏硬度为9的矿石除了刚玉以外还有什么? 有关学问的结尾20~50字 遗传多样性就是基因多样性吗,如果不是,二者有什么区别 摩氏硬度8.5等于多少洛氏硬度 吃什么食物快速回奶 豌豆的高茎基因(D)与矮茎基因(d)所含密码子为什么相同?有什么原因使其表现的性状不同? 化工原料在哪里能买得到 玻璃的硬度比花岗岩硬度大,这是对的还是错的? ①细胞的结构②显微镜的使用③光合作用④细胞呼吸 买化工原料应注意什么? 芒硝回奶,芒硝结块了怎么回事?还能用吗?要不要换新的!? 芒硝的化学式 GCr15轴承钢热处理后的弹性极限值和冲击韧度是多少? 芒硝是什么东东 大苏打.芒硝的化学式是. 你知道人类在建造人工生态系统的探索中还做了哪些努力?这些努力有什么意义?急 芒硝如何使用 芒硝,石膏是什么东东啊,化学式是什么啊,急! 人类在建造人工生态系统的探索中还做的努力,这些努力有什么意义? 请问水晶和玻璃如何区别... 芒硝的化学式是什么啊,分子量多少啊?还有其他化学式对应的俗称吗尽量多点. 人类在建造人工生态系统中的探索还做了哪些努力?这些努力有什么意义? 玻璃与水晶有何区别? 一个很简单的科学知识,上浮物体在水中都受到浮力的作用,可以用什么来测出浮力的大小? 什么是EI
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn