比如:在FormCreate事件里,动态循环创建10个Label控件,Label的Name属性为1到10,请问程序要怎么写?

解决方案 »

  1.   

    Labelarr1:array[1..20] of Tlabel;labelarr1[i]:=Tlabel.Create(self);
         
    for i:=1 to 10 do
    begin
          with labelarr1[i] do
          begin
            autosize:=true;
            font.Color:=clblack;
            font.Name:='宋体';
            font.Size:=10;
            left:=leftsize;
            top:=topsize+40;
            topsize:=topsize+20;
            caption:=adoquery1.fieldbyname('nam').AsString;
          end;
          
          form1.InsertControl(labelarr1[i]);
    end;
      

  2.   

    上面的caption自己改,我的是一个数据库里的东西
      

  3.   

    procedure TForm1.FormCreate(Sender: TObject);
    type Labelarr1:array[1..20] of Tlabel;
     var i:integer;
    beginfor i:=1 to 10 dobegin
    with labelarr1[i] do
    begin
    autosize:=true;
    font.Color:=clblack;
    font.Name:='宋体';
    font.Size:=10;
    left:=leftsize;
    top:=topsize+40;
    topsize:=topsize+20;
    caption:=inttostr(i);
    end;form1.InsertControl(labelarr1[i]);
    end;end;请问:labelarr1[i]:=Tlabel.Create(self);加在哪个位置?
      

  4.   

    for i:=1 to 10 do
    begin
      labelarr1[i]:=Tlabel.Create(self);  
      with labelarr1[i] do
      begin
        tag = i; //加上以备不时之需
      end;
      

  5.   

    按上面说的,
    编译是出错:'[' expected but'[' found
    请问又是什么回事呢?在labelarr1[i]:=Tlabel.Create(self); 
    当打完"tlabel."时没有出现弹出create方法或其他属性,方法..可否给出完整的程序呢,,小弟比较笨,,在此多谢先
      

  6.   

    procedure TForm1.Button1Click(Sender: TObject);
    var labelarr:array[1..5] of Tlabel;
    i,topsize:integer;
    begin
    topsize:=10;
    for i:=1 to 5 do
    begin
    labelarr[i]:=Tlabel.create(self);
     with labelarr[i] do
     begin
      autosize:=true;
      font.Color :=clblack;
      font.Name :='宋体';
      font.Size :=10;
      left:=20;
      top:=topsize+40;
      topsize:=topsize+20;
      caption:=inttostr(i);
     end;
     form1.InsertControl(labelarr[i]);
    end;
    end;