for i := componentcount - 1 downto 0 do
  if components[i] is TLable then
    components[i].Free;

解决方案 »

  1.   

    var 
      i,itop,ileft : Integer;
      lab          : TLabel;
    for i:= 1 to 20 do
    begin
      lab:=TLabel.Create(nil);
      lab.parent:=Panel1;//Form1
      lab.Name:= 'lab_'+ IntToStr(i);
      lab.Caption:='lab'+ IntToStr(i);
      lab.Top:= itop;
      lab.Left:= ileft;  
      if i mod 5 = 0 then
      begin
        ileft:= 0;
        itop:=10+itop+lab.Height;
      end
      else
        ileft:= ileft+Lab.Width+10;
    end;
      

  2.   

    Freevar i:Integer;
    for i:=Panel1.ControlCount - 1 downto 0 do
    begin 
      if Panel1.Controls[i].ClassNameIs('TLabel') then
      TLabel(Panel1.Controls[i]).Free;
    end;
      

  3.   

    如果你的 Panel1 容器中只有 TLabel 一种控件,可以这样试一下:begin
      while Panel1.ControlCount <> 0 do
        (Panel1.Controls[0] as TControl).Free;
    end;
      

  4.   

    var
      i,Count:integer;
    begin
      Count:=ComponentCount-1
      for i:=0 to Count do
       if Components[i] is TLabel then
          Components[i].Free;
    end;
      

  5.   

    怎么不用控件数组呢?
    for i:=0 to 99 do
      begin
        label[i]:=tlabel.create(nil);
      end;
    for i:=0 to 99 do
      begin
        label[i].free;
      end;
      

  6.   

    没福气来晚了,我也会象 chechy(我爱洁洁)写的那样的!