for i:=0 to componentcount-1 to
if components[i] is tshape then begin
tshape(components[i]).free;
application.processMessage; //试试
end
if components[i] is tshape then begin
tshape(components[i]).free;
application.processMessage; //试试
end
解决方案 »
- IDPOP3接收邮件怎么获取邮件源码里的Content-ID
- 版本之间的异同,感兴趣的可以贴出来啊!
- 为什么在2000下显示全白的程序,在98下显示全黑?
- 各位帮忙以下错误怎么解决啊
- 用数据库还是文本文件直接操作呢?最好有些具体步骤,菜菜菜啊!!!
- 各位大虾请看一下这段代码错在哪里,马上结帖!
- TColor 的值如何取出 RGB 的分量,另外系统定义的颜色又如何获取?
- 用Canvas做报表PreView, 字体的大小如何进行控制,请大佬,帮忙我在线等待
- 控件如何自定义函数使用
- DELPHI里的TNMFTP控件当下载超过2MB时就会中断ABORT请问这是不是BUG还有其他比较好的吗?
- 小调查:谁在用正版Delphi?
- 关于cgi的重定向,到底是pws的问题还是程序的问题?求救!!!
怎么搞的!!!
你从0开始销毁,一直到Count-1,好像可以,其实不然呀!!!
假设总共有3个,当你销毁第一个(下标为0)的时候,此时Count其实已经变化为2,
然后下一个循环的时候,访问的是Components[1],此时1已经是最后一个了,
再下一个循环的时候,访问的是Components[2],此时Count=1,请问,能不出错吗?解决办法:
// 采用 For i DownTo ..
for i := ComponentCount - 1 downto 0 do
begin
if Components[i] is Shape then
begin
// Do Free
//. ...
end;
end;
假设总共有3个,当你销毁第一个(下标为0)的时候,此时Count其实已经变化为2,