procedure TfrmUser_product_config.FreeCheckBox;
var
i : integer;
ct : TControl;
begin
for i:=0 to groupbox1.ControlCount - 1 do
begin
if groupbox1.Controls[i] is TCheckBox then
begin
(groupbox1.Controls[i] as TCheckBox).Free;
end;
end;
end;1.释放控件时会出现越界错误,请问是什么问题?
2.如果换成 downto 时没错误,请问为什么downto可以呢?
var
i : integer;
ct : TControl;
begin
for i:=0 to groupbox1.ControlCount - 1 do
begin
if groupbox1.Controls[i] is TCheckBox then
begin
(groupbox1.Controls[i] as TCheckBox).Free;
end;
end;
end;1.释放控件时会出现越界错误,请问是什么问题?
2.如果换成 downto 时没错误,请问为什么downto可以呢?
我想问为什么要换成downto没错, to 就有错误呢?
比如:
i:=0 to 5 你删除了前面5个后,ControlCount又变成了1,最大的下标只能是0了,再找Controls[5]肯定找不到
你的意思是我不要减1了
但是好像不是那样的
它在中间就会出错
刪除一個Control[0]以後,那麼這個時候剩下的兩個控件就便成了Control[0],Control[1]
循環到I=1也不會出問題,因為存在,但是如果I=2呢,隻剩下Control[0]了,所以就找不到所謂的groupbox1.Controls[i=2]了組織語言太費勁,轉過來彎沒有?
aiirii ,wycg_cnh20(发奋图强中),l_xiaofeng(這一生隻為你)
的回答我已经理解了