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;
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;
如果你的 Panel1 容器中只有 TLabel 一种控件,可以这样试一下:begin while Panel1.ControlCount <> 0 do (Panel1.Controls[0] as TControl).Free; end;
var i,Count:integer; begin Count:=ComponentCount-1 for i:=0 to Count do if Components[i] is TLabel then Components[i].Free; end;
怎么不用控件数组呢? for i:=0 to 99 do begin label[i]:=tlabel.create(nil); end; for i:=0 to 99 do begin label[i].free; end;
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;
for i:=Panel1.ControlCount - 1 downto 0 do
begin
if Panel1.Controls[i].ClassNameIs('TLabel') then
TLabel(Panel1.Controls[i]).Free;
end;
while Panel1.ControlCount <> 0 do
(Panel1.Controls[0] as TControl).Free;
end;
i,Count:integer;
begin
Count:=ComponentCount-1
for i:=0 to Count do
if Components[i] is TLabel then
Components[i].Free;
end;
for i:=0 to 99 do
begin
label[i]:=tlabel.create(nil);
end;
for i:=0 to 99 do
begin
label[i].free;
end;