找了很多高手,没法完成。就是想动态创建5个Label,出现了问题。
你们有什么好办法吗?procedure TForm1.Button2Click(Sender: TObject);
var ll:array[0..4] of tLabel;
   j:integer;begin
for j:=0 to 3 do
begin
ll[j]:=tLabel.Create(self);
ll[j].Name:='a'+inttostr(j);
ll[j].Caption:=inttostr(j);
ll[j].Left:=360;
ll[j].Top:=100+j*7;
ll[j].Visible:=true;end;end;

解决方案 »

  1.   

    你第二次单击的时候当然存在了,你label的名称就是a0-a3啊,把j改成全局变量,并且把for循环改成while循环。
    var
      i :integer;
    begin  
    while i < 4 do   //i是局部变量
      ... 
      label.name :='a' + IntToStr(j);
      Inc(j);  
    end;
    记住j初始化为0
      

  2.   

    我在做报表的时候遇到过同样的问题,只要不给NAME 属性负值就可以了
      

  3.   

    设为全局数组if not Assign(ll[j]) then ll[j]:=TLabel.Create(self);