首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

如何擦除控件中的控件

2012-03-29 
怎么擦除控件中的控件。描述:我在一个控件(tbsskinscrollbox)上画过一些控件,第二次想重新在上面画上一些控

怎么擦除控件中的控件。
描述:我在一个控件(tbsskinscrollbox)上画过一些控件,第二次想重新在上面画上一些控件,画新的控件前如何擦除已有的控件。

生成控件,   显示在bsskinscrollbox1上
var
Boxi:Tbsskinspeedbutton;
begin              
for   i:=1   to   100   do
  begin
    boxi:=tbsskinspeedbutton.Create(self);
    boxi.caption= '第 '+inttostr(i)+ '个按钮 ';
    boxi.width:=80;
    boxi.heigth:=45;
    boxi.Parent:=bsskinscrollbox1;
    boxi.top:=     ;
    boxi.left:=   ;
    boxi.onclick:=speedbuttonclick   //speedbuttonclick   是自定义的事件
  end;
end;
第二次生成,先擦除,再显示在bsskinscrollbox1上。
用下面的擦除方法会报错。
for   i:=1   to   bsskinscrollbox1.ControlCount   do
bsskinscrollbox1.Controls[i].Destroy;
我跟踪了一下,他是跳一个擦一个,所以擦到一半后再去擦下一个时,实际已经到尾部,但是循环只到一半,所以会在擦除时找不到控件。
请问正确的方法该怎么擦除。

[解决办法]
for i:=1 to bsskinscrollbox1.ControlCount do

i是不是应该从0开始啊

你这样试试
for i:=bsskinscrollbox1.ControlCount -1 downto 0 do
bsskinscrollbox1.Controls[i].Destroy;
[解决办法]
试试这样
for i:=0 to bsskinscrollbox1.ControlCount-1 do
begin
bsskinscrollbox1.Controls[0].Destroy;
end;
[解决办法]
这个也错的吗?
for i:=bsskinscrollbox1.ControlCount -1 downto 0 do
bsskinscrollbox1.Controls[i].Destroy;

热点排行