先看代码:
动态创建TImage:
DymicImg := TImage.Create(PanelPreview);//n个……
然后删除:
procedure TForm1.DelImg;
var
i:integer;
ChildComponent: TComponent;
begin
for i := 0 to PanelPreview.ComponentCount - 1 do
begin
ChildComponent := PanelPreview.Components[i];
if PanelPreview.Components[i] is TImage then
begin
try
(PanelPreview.Components[i] as TImage).Free;
except
end;
end;
end;
end;报错:out bound of list(1),只能删除Components[0]郁闷了3小时后,偶然把:
for i := 0 to PanelPreview.ComponentCount - 1 do
换成:
for i := PanelPreview.ComponentCount - 1 downto 0 do
居然正常了!!!
大家有这样的情况吗?我用的D7
动态创建TImage:
DymicImg := TImage.Create(PanelPreview);//n个……
然后删除:
procedure TForm1.DelImg;
var
i:integer;
ChildComponent: TComponent;
begin
for i := 0 to PanelPreview.ComponentCount - 1 do
begin
ChildComponent := PanelPreview.Components[i];
if PanelPreview.Components[i] is TImage then
begin
try
(PanelPreview.Components[i] as TImage).Free;
except
end;
end;
end;
end;报错:out bound of list(1),只能删除Components[0]郁闷了3小时后,偶然把:
for i := 0 to PanelPreview.ComponentCount - 1 do
换成:
for i := PanelPreview.ComponentCount - 1 downto 0 do
居然正常了!!!
大家有这样的情况吗?我用的D7
你每删除一行,Count就会变化的~~~
第一次循环删除[0],那么原来的[1]就变成了[0],[2]变成了[1],到最后,你删除得越多,实际的COUT与刚开始的差别就越多,这个时候,当变量超出现有的COUNT时,就会报错了。
本回复由大傻的破玩意儿【CSDN's forum Explorer】完成!
大傻的破玩意儿,今天你用了木有 !!
软件功能强大,速度超快!!支持中...
软件下载地址:http://CoolSlob.ys168.com
这种低级错误也敢发出来,真是搞笑
--------------------
你的错误都高级?切……,你要说你小时没用过尿片我就信你