我用动态数组动态的建了几个label可是我用什么办法可以删除他们呢:
setlength(labela,5)
for i:=0 to 4 
begin
labela[i]:=Tlabel.create(self)
labela[i].caption:='aaaa';
labela[i].parent:=self;
end
我现在想实现在一个Button里再删除他们怎么作呀

解决方案 »

  1.   

    TLabel(labela[i]).Free;
    要先给数组里面的元素设定对象框架。
      

  2.   

    删除的方法:
    for i:=0 to 4 
      FreeAndNil(labela[i]);  // 因为创建的时候是写 Tlabel.create(self),由窗体负责释放。
                              // 如果创建时写 Tlabel.create(nil),则这里只要用labela[i].Free;
    setlength(labela,0)
      

  3.   

    var
    ICount,JCount:Integer;
    ControlCom:Tcontrol;
    begin
       for ICount := Panel1(此为LABEL控件的载体).ControlCount - 1 downto 0 do           //释放MOD控件
         begin
         if (Panel1.Controls[Icount] is Tlabel) then
           begin
           ControlCom := Panel1.Controls[iCount];
           ControlCom.Free ;
          end;
        end;