在我的form中有一个panel控件,我在其上动态创建了许多的label和radiobutton,我想问有什么方法一次将这个panel控件上的动态创建的控件全都清除掉。

解决方案 »

  1.   

    如果你这个panel上全部是动态创建的控件的话,只要把此窗体内father是该panel的控件全部free掉就可以了。
    如果你知道那些控件的名字的话就直接free掉好了,
    如果不知道的话,最好在创建的时候加个标记表明是动态创建的,比如给动态创建的控件的tag赋个特殊的值作为判断的依据
      

  2.   

    你用楼上的方法判断你的控件是否为动态创建的,然后用一个循环
    for i := 0 to panel1.ComponentCount - 1 do
    begin
       if (Panel1.componets[i]  is TLabel)  then //radioButton类似
       begin
         Panel1.componets[i].Free;
       end; 
    end ;
      

  3.   

    我想问一下,我在panel上确实创建了好多控件,为什么panel1.ComponentCount确等于1呢,
      

  4.   

    还有,我的form的componentcount为57,为什么我在操作到components[i],当i到47时,就提示出错,说是出界了呢