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

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

编辑:说三道四文库 发布时间:2017-03-31 03:07
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;
不闪烁,无需循环
关闭外部应用程序-Delphi资料 监视剪贴板内容-Delphi资料 检测磁盘是否变化-Delphi资料 检测驱动器容量-Delphi资料 检查驱动器是否就绪:-Delphi资料 建立简单的任务栏应用程序-Delphi资料 将程序放在Windows启动中-Delphi资料 将光标限制在某区域-Delphi资料 将文件放入回收站-Delphi资料 禁止用户切换任务-Delphi资料 控制面板大全-Delphi资料 控 制 系 统 菜 单-Delphi资料 拦截消息处理过程-Delphi资料 利用API函数开发DELPHI程序三例 利用Hook技术实现键盘监控-Delphi资料 利用浏览窗口 DragDrop 任意文件-Delphi资料 利用未公开函数实现Shell操作监视-Delphi资料 妙用Delphi的标识号 判断Windows类型和版本-Delphi资料 判断一个程序是否dos版本:-Delphi资料 屏蔽系统按键-Delphi资料 屏幕抓字技术揭密(转载)-Delphi资料 启动控制面板-Delphi资料 取得系统所有窗口的方法-Delphi资料 全部窗体可使用鼠标点中移动-Delphi资料 让图像旋转-Delphi资料 热启动控制-Delphi资料 如果隐藏和显示Windows的任务条-Delphi资料 如何把文件删除到回收站中-Delphi资料 如何从任务栏上隐藏应用程序的按纽?-Delphi资料 如何得到Windows 的temp路径-Delphi资料 怎样才能不让用户复制文档? 如何在VB自定义过程或函数中传递数组? 在VC6中如何使用数据网格 需要类似pcanywhere or romoteanywhere中远程抓屏的源代码?方法提示也可以! 关于数据库中图象的存取问题,100全送! PowerDesigner8 显示与oracle连接信息? PopupMenu如何知道是由哪一个控件激活的(几个控件共用一个PopupMenu) 如何通过序数从DLL引出函数表? 有关datagrid的border问题? 在pb中用SetPicture(lb_image)当lb_image为空时picture的图片不变 急!!急!!如何用MultiByteToWideChar()实现Unicode编码?? 请问:这是叫什么服务来着? 请问有没有有关工作流技术的理论和资料 windowsXP与Visual C++问题??? 发布目录在哪里问题!!!!急急急 请教一个entity bean的问题 调查一下,微软的工程师工资有多少呀?做什么软件的工资最高? idhttp.get可以获得htm 文件,我现在想得到gif文件,怎么办? 不知大家有没有听说过Tapestry,是一个有关权限管理的开发原代码 请问C标准函数里是否有这样的函数,可以删除文件名相同但忽略扩展名的函数,如可以同时删除A1.LIN和A1.SA?谢先!!! 如何修改硬盘序列号(不是卷序列号,而是出厂序列号)? MS EXCHANGE SERVER 2000 在WEB页面更改MAILBOX的密码 关于string的简单问题 String和StringBuffer的具体区别是什么? 请问哪里有<<com原理与应用 >>电子书下载?谢谢 高级问题:如何实现在应用程序中动态布置控件。(分数不是问题) TList问题 请问: 我进不了windows2000 advanced server!!怎么办? 北京程序员俱乐部的相关问题 如何修改硬盘序列号(不是卷序列号,而是出厂序列号)? 请问C标准函数里是否有这样的函数,可以删除文件名相同但忽略扩展名的函数,如可以同时删除A1.LIN和A1.SA?谢先!!! 如何用DAO调用MSSQLSERVER中的存储过程获得结果集? sybase的字符串连接符是哪个 如何取得上网ip?(不是本地IP),在局域网中,客户机通过主机代理上网,能否确定客户是否连在网上? 请问网络高手--怎样知道对方的物理地址(知道对方的IP)??? 图片存在数据库中,在asp页上如何让其显示出来!? 如何把文件或图片以Blob类型存入Oracle数据库,并在JSP中把数据库中的Blob数据以最初的文件格式读出来??? 如何把文件或图片以Blob类型存入Oracle数据库,并在JSP中把数据库中的Blob数据以最初的文件格式读出来??? 请问大伙《TCP/IP详解》1,2,3卷----机械械工业出版社,是否值得购买?翻译的怎么样? CRYSTAL REPORTS DEVELOPER EDITION VERSION 哪里有下? 如何控制excel中的图表? 我想在我彻底陷去之前再清醒的看看这个世界..... 十万火急!!!IIS报HTTP 500的错误。 select时间段问题 请推荐uml方面的好书!! CreateWindow和MFC的CFrameWnd::LoadFrame产生的窗口的区别?? 在pb中用SetPicture(lb_image)当lb_image为空时picture的图片不变 有一段代码破不理解?谢谢! 在pb中用SetPicture(lb_image)当lb_image为空时picture的图片不变 4x平方-4y平方-4x+4y+11=2怎么写 试解释月球上的一些现象1.月球比太阳小得多,但对地球的引力却最大2.月球上永远万籁俱静,听不到任何声音太阳系中主要天体排列成“十字连星”形状的原因是什么?太阳系主要天体在运动过 已知关于X的方程组4x+3m=2 8x-3y=m的解满足x>0,y>0 求m的取值范围 若a、b∈N+,二次方程x^2+ax+4=0和x^2+2bx+4=0有实数根,求a+b最小值 那位高手能帮忙做到GRE题呢?谢拉~3.Although some censure became (i)___ during the 1980s,Dahl himself seems to support some of such earlier criticism.Although he (ii)___ that some Western intellectuals demand more democracy from polyarchi 关于x的多项式6x的n-1次方-4x+k-是二次二项式,则n=(),k=()最好解释一下为什么这么做 月球表面是什么颜色? 两道不定积分题,谢拉!①∫[(3-x²)/(x³-x)]dx②∫[1/√(1+x²)]dx 关于x的多项式6x的n次方-1-4x+k-3多项式:(6)( x的)( n次方-1 )( -4x)( +k)( -3) 我用括号括起来,希望您能明白 x是多少 k是多少是二次二项式 10+2等于几 已知集合A={ x|X^2 +px +q=0} B ={x | X ^2 -px -2q =0} 且A交B={-1} 求A并B 寒假趣事作文500字你发的够字数吗 月球表面有颜色么我想月球不是单一的灰白色 是否我们被蒙蔽了 天火同人卦--同人于野、亨、利涉大川、利君子贞.同人、柔得位、得中、而应乎干、文明以健、中正而应、君子正也、唯君子为能通天下之志.天与火、同人、君子以类族辨物. 海南寒假趣事作文500字 为什么月亮会呈现出不同的颜色?比如银白色、黄色、特别是红色是怎么回事? 101分之1减去102分之1的绝对值,加上102分之1减去103分之1的绝对值,加上103分之1减去104分之1的绝对值,加上104分之1减去105分之1的绝对值. 设x,y是关于m的方程m² -2am+6+a=0的两个实根,则(x-1)² +(y-1)²的最小值是? 月球为什么有时是黄色,有时却是金红色?(非常像太阳那种颜色) 狗有什么奇异现象?具体说明些哦再给小一些,好吗 已知方程x²-px+15=0与方程x²-5x+q=0的解集分别为A与B且A∩B={3},则p+q的值为? 已知关于x的方程 ,X²-2bx+a-4b=0,其中ab为实数,对于任何实数b,此方程都有实数根,求a的取值范围 月球飞行探测器的颜色有特别规定吗? 问道高中地理题强化专练2.右图为“西半球侧视图”,若西半 球和夜半球完全吻合,完成下列要 求. (1)此时太阳直射点的地理坐标是 ;此时太阳直射点向南移,则北半球进入季.(2) 已知a为实数,关于x的方程27x²+2a²x+a=0有实根,则x的最大值为, 一、土耳其海峡海底铁路隧道的修建:“沟通亚洲和欧洲,提高铁路运输的灵活性”.这句话为什么不对?二、畜牧业与狩猎、游牧有什么区别?阿拉斯加的主要农业生产是? 问道高中地理地球的大气的题目中国气象局与交通部2006年10月15日联合发布全国主要公路气象预报:15日20时至16日20时,……内蒙古中部的部分地区有沙尘天气.土壤风蚀是沙尘暴发生发展的重 welcome you to our school 1:印度河与恒河的入海口那个盐度高?理由?2:恒河入海口几月份盐度最低?3:冬季地中海气候地区(伊斯坦布尔)为什么风力大于热带沙漠气候地区(多哈)?4:西亚发展种植业的有利条件和 关于x的方程x^2-zx+1-15^0.5 i=0有实数根,求使得复数z 的模取到最小时方程的解 We welcome you to our city和You are welcome to our city.的用法区别和不同处 1.9月23日至次年3月21日,中午物体的影子始终朝北的地区是:A.赤道以南地区 B.北回归线以北地区C.赤道以北至北极圈之间地区 D.赤道以北地区2.下列自然现象与太阳辐射无关的是A.B.大气和水体 月亮周围有光圈是什么现象?我的记忆没错的话 我们小时候的语文课本上说 月亮有光圈的话说明最近的天气会变坏 是要下雨还是怎么的~夏天的时候比较明显 实数ab满足a²+4b²+2a-4b+2=0 (1)求ab的值 (2)方程6(1+b)x²=6+2a的根 几道高中地理题目.要步骤哦 我国一艘远洋考察船,于北京时间2000年2月28日23时起,在赤道上由东十二区向东经过45小时航行了900海里,这时所在的地点的区时是(1海里 海里=1.852km) 答案为2000年3月1日1时答的好我给至少20分. -You are welcome to our school.-_____.AThanks BYou are right.C I think so.D .I am sorry. 为什么月亮是黄色的 因为可以照明夜晚的黑色星空 月亮周围出现一个光圈,是怎么回事?前天夜自习放学.独自一人走在路上,突然仰望天空,发现月亮周围出现一个光圈,不可思议呀.怎么回事,是不是超级月亮? a²+b²+2a-4b+5=0,求2a²+4b=?请说明原因 为什么昨天的月亮是黄的 9.国家大飞机制造项目落户上海,体现上海的突出区位优势是 ( )A.交通便捷 B.劳动力充足 C.消费市场大 D.科技力量强为什么不选A? 帮我取个英文名!谢拉!我的名字后两字是 天灵!我想取个最好是音译的! 为什么月亮看上去有时是黄色有时是白色 偶尔见到月亮周围有一个光圈,是什么现象? 求好听的男英文名.中文名叫朱俊桦.谢拉 我的世界,我看别人家里玻璃发着黄色的光像月亮一样, 当前,我国进行西部大开发,目的是合理利用西部丰富的自然资源,使得西部地区经济社会较快发展,下列说法不正确的是( 我选B )A.西部大开发,促进了经济社会的发展,从而使环境承载力变大B.西 帮我取个英文名字`谢拉`名字里有个 芃 女生 天蝎座 比较小巧 cute不要太大众化的啦~好听一点 已知集合A={x丨x的平方+px+q=x}集合B={(x-1)的平方+p(x-1)+q=x+3},当A={2}时,集合B为-------谢谢 顺便写下过呈 已知椭圆E的长轴的一个端点是抛物线y²=4√5x的焦点 离心率是√6/3(三分之根六)求椭圆E的方程 想取一个与我名字比较相象的英文名,我该怎么取啊?希望大家给我点意见.谢拉.我是男生,性格呢,有点内向...我叫郑志鹏.想取一个与我名字比较相象的英文名,我该怎么取啊?希望大家给我点意 月亮是黄色的,而且是圆的,还一会被乌云遮住,这是什么现象 暑假趣事作文800字 卫兆涛起个英文名?谢拉性格开朗;努力向上,契而不舍·······最好是e开头 月亮跟我走的现象如何解释 暑假趣事作文600~800字 9x的平方+4y的平方=31求4x9x的平方+4y的平方=31 求4x 求7月7日到7月24日(左右)都有什么特殊天体现象如题,特别是7月13日以后,都有什么典型的天象(如流星雨、行星的特殊位置等等),并且请告诉我那是怎么回事,有什么样的原因和现象,主要是 982.77 你懂得 qzrufang2012@sina.com 谢谢
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘