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

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

编辑:说三道四文库 发布时间:2017-12-18 09:40
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;
不闪烁,无需循环
最新消息:iPhone 6将采用更大、更清晰的1704x960分辨率屏幕 吴毅挺:OpenStack是开源IaaS平台大势所趋的集大成者 做好扁平化设计-交互篇 狙击Google Glass?三星将推基于Tizen系统的Gear Glass GamePlay:跨平台开源3D游戏引擎,黑莓的努力你不懂 “少即是多” 高通QRD大会精华汇总 天云盾:构筑在云端的Web安全防护 解析大数据时代的数据库集群技术 莫里航海图,最早的大数据实践 弥补空缺!HappyFox面向iOS开发者发布开源移动HelpDesk SDK Chitika北美网络流量报告:WP KO黑莓、iOS超Android 《近匠》秦时明月:知名IP光环下的生存之道 微软研究院正式发布编程学习游戏Code Hunt 走近讲师:Memblaze刘爱贵讲述云计算中的闪存应用 【云先锋】ClouDil云方案:PB级大数据解决方案 一周消息树:这是要“发”啊?Google Brain之父正式加盟百度 最受欢迎的游戏引擎集结号:小白篇 多盟总设计师邢开捷:四两设计拨千金 Cocos2d-x游戏《Monster Strike》终结《智龙迷城》霸榜神话 高通物联网技术解决方案:从汽车到智慧城市 Arduino携手Atmel 发布Arduino Zero开发板 以色列玫瑰:细数十位科技创新领域的女性佼佼者 8款最佳的开源在线学习CMS系统 在发布站点前,Web开发者需要关注哪些技术细节? TOCC、中航信、高德、北斗平台重磅专家登场 邀您共享ITS技术盛宴 腾讯大数据之TDW计算引擎解析——Shuffle AMD APU14 BEIJING技术创新大会精彩看点 这是云整合时代开始的节奏吗?Rackspace考虑退出 一周热点:如何使用15美元每月的机器实现百万文档检索 黑客获取数据信息的目的和进攻手段及应对之策 Surface Pro 3遭大曝光:799$起、四色可选、12寸屏幕 如果一个dll,在它里面有一个窗口,而有一个函数是这个窗体类的一个函数,那么如果在使用这个dll文件中的这个函数。 谁能给一个测试是否是EMAIL的函数?急! 如何实现关键字查询? 只能让家里的电视出现更多的台,比如解码器什么的! 急问:那位了解 sys/wait.h ,它的功能是什么? 求MICROSOFT VISUAL STUDIO.NET 2002 中文企业版,2003不要,谢谢~ saucer(思归)在吗?有问题请教! 哪里有C++ Builder 下载的。 TTrayIcon中的图标颜色只能显示16色的吗? HELP!!!XML怎么写成物理文件到本地? 这是为什么呀?电脑高手请进。。。 也说技术人员创业 高分:虚拟主机问题 快被OVERLAY搞死了,急救 中了“盗贼”木马,如何删除? 请网络高手来看看这个问题,给我点提示和建议?急急急 汉字在exe 文件的十六进制 能否 转换得来? 气死人了,在jbuilder8中被logic:iterate搞死了,累,急救 pb数据窗UPDATE的怪问题!很怪!!! 配置问题求救! 请问Access中可以用select case ........when else end的函数吗? 一定要把AutoPostBack设定成true才能响应事件? 但是那样动态生成的控件又都没了…… 急 哪位知道哪有OpenGL高级编程的培训 短消息服务提供商(SP)程序问题 那里能弄到解码器~~~~~~~~~~~~~~~ 马上就要毕业了,请先辈们指点迷津!!! 安装 Duwamish 7.0 和 PetShop 3.0 时的问题? 一个二维数组的问题,请指教 tdbgrid 锁定行,使改行不可编辑 能否实现这样的功能:如果是A登陆,则可以看见一个按钮a;如果不是A登陆,则按钮a不可见。 本人查看过往的薪水调查的贴子,看到大多数人都在贫困线(2K)下,这JSP技术已经没什么钱途了.转向吧! rm格式的文件不能正常播放用什么软件修复呢? 请问用java编好的软件,如何打包发布呀?急~~~ 怎样在对话框里设置背景图片? 帮帮我!我弄了好久拉! 请解决了clientdataset的filter中使用like过滤中文单汉字的高手进来解决一下 如何禁止菜单栏“窗口”项中的窗口列表 如何用xml显示,从数据库图像字段中导出来的图片信息,显示为图片!代码如下... 紧急求助:CSocket的问题 请教:程序先往一word模板中写入数据,word显示出来后,不允许修改,怎么能实现?(在线等待) 可不可以告诉我操作系统里的LPVOID当我在C#中调用API时应转化为哪个类型? boot.ini文件找不到了 再请大家告诉以下连接数据库的问题,为什么总是连不上?!!!! 6711和6211的区别!!!!!!!! C#中如何在代码中实现窗体上所有相同控件的属性赋值,给个示例代码 牛人们,能不能给我一个lod的源程序,或者网址,小妹急用!(在线等) 看完代码后请帮助我 将Oracle的数据怎样绑定到DataGrid1网格控件里? 请问delphi中有没有像foxmail中发邮件时那种可以实现编辑简单html文档的控件 判定密码的程序 程序员有必要考研吗 像星星一样的手工还有什么? 建筑工地要挖一个长50米,宽30米,深50厘米的长方形土坑,挖出多少方的土?要把,50厘米,转化成,米. 建筑工地要挖一个长50米,宽30米,森50厘米的长方体土坑,挖出多少方的土 纸箱里有若干个乒乓球,其中4分之1是一级品,5分之n(n为正整数)是二级品,其余91个是三级品.问:共有多少个乒乓球? 纸箱中有若干个乒乓球,其中1/3是一级品,n/7(n为整数)是二级品,纸箱中有若干个乒乓球,其中1/3是一级品,n/7(n为整数)是二级品,其余的165个是三级品.那么共有多少个乒乓球? 纸箱里有诺干个乒乓球,4分之一是一级品,5分之n是二级品,91个是三级品,问共有多少个快 迤西的迤字读什么?迤西是云南的一个地名,在当地,迤西的迤字读yí还是读yǐ? “迤西”读什么二个连着的,那“迤”读什么 迤字的意思? 透迤是什么意思 !支透!是什么意思啊? 英报报道 高官联袂访华终结中英冰冻期就业数据黯淡或拖延美联储“退出”脚步港报称印中民间互视有温差美国科学家发现DNA时钟 或可重设时美国企业研发氦气球游大气层 每人旅费美报文章 中国良性通胀对世界是好事中美军方高官加快对话步伐美国企业研发氦气球游大气层 每人旅费筱原凉子永作博美 谁是日本最美熟女?美国科学家发现DNA时钟 或可重设时墨报文章 “石油人民币”时代即将到来亚投行框架备忘录将于10月中旬签署“同在蓝天下”青少年公益画展开幕将冲击上升趋势线2050美国测试“飞碟” 模拟火星着陆东风日产展台:双品牌同台走秀圣城瓦拉纳西:莫迪的诺曼底或滑铁卢政府欠款包工头自杀事件曝光后还500央行要求提前支取罚息 货基协存特权不五华区职工技能大赛启动自驾去泰北顺便买套房省博看牛天泽 柏易宏联展乾坤诀轻狂年代我的萌妹军团高手赛三界飞鹰异界佣兵神阿凡达驰骋美职篮穿越大唐之奉旨泡妞武灵歪传战道邪影未知王国路环市区旅游诚品书店旅游伪满洲国国务院旧址旅游旧八大部旅游伪满皇宫博物院旅游图们江广场旅游帽儿山国家森林公园旅游白马尖旅游朝鲜旅游日照海滨国家森林公园旅游信号山旅游
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘