我现在Form1上有30个Label1-Label30.我现在想在Form1一打开的时候就把表的table1和a字段刚好30行字符自动加载到Label1-Label30中去.这样的一个循环插入要怎么写?谢谢各位...

解决方案 »

  1.   

    不太明白你的意思
    我现在想在Form1一打开的时候就把表的table1和a字段刚好30行字符自动加载到Label1-Label30中去.
    你的意思是要把表table1的a字段刚好30行记录自动加载到Label1-Label30中去吧,不知道意思理解错没
      

  2.   

    对.我的表里面刚好有30行记录,所以想把a字段的30行分别第1行就加载到Label1,第2行就加载到Label2上一直到30行加载到Label1.
      

  3.   


    procedure TForm1.FormCreate(Sender: TObject);
    var
    i:integer;
    begin
       with Table1 do begin
         Active:=true;
         while RecNo<30 do begin
         TLabel(Form1.FindComponent('Label'+inttostr(RecNo))).Caption:=FieldValues['a'];
         next;
         end;   end;
    end;
      

  4.   

    修正一下:procedure TForm1.FormCreate(Sender: TObject);
    var
    i:integer;
    begin
       with Table1 do begin
         Active:=true;
         while RecNo<=30 do begin
         TLabel(Form1.FindComponent('Label'+inttostr(RecNo))).Caption:=FieldValues['a'];
         next;
         end;   end;
    end;
      

  5.   

    不好意思,刚才一试以上代码发现有问题,以下可以全部显示正确了:procedure TForm1.FormCreate(Sender: TObject);
    var
    i:integer;
    begin
       with adoquery1 do begin
         Active:=true;
         i:=0;
         next;
         while i<=RecordCount do begin
         TLabel(Form1.FindComponent('Label'+inttostr(i))).Caption:=FieldValues['x_a'];
         inc(i);
         next;
         end;
       end;
    end;
      

  6.   


    with adoquery1 do begin {这里要换成with Table1 do begin}
      

  7.   

    给你个动态的:unit Unit1;interfaceuses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, StdCtrls;type
      TForm1 = class(TForm)
        Button1: TButton;
        procedure FormClose(Sender: TObject; var Action: TCloseAction);
        procedure FormShow(Sender: TObject);
      private
        { Private declarations }
        lb: array[0..29] of TLabel;
      public
        { Public declarations }
      end;var
      Form1: TForm1;implementation{$R *.dfm}procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
    var
      i: byte;
    begin
      Table1.Active:=true;
      for i:=0 to 29 do
        lb[i].Free;
    end;procedure TForm1.FormShow(Sender: TObject);
    var
      i: byte;
    begin
      Table1.Active:=true;
      for i:=0 to 29 do
      begin
        lb[i]:= TLabel.Create(nil);
        lb[i].Parent:= Form1;
        lb[i].Top:= 19+13*i;
        lb[i].Left:= 80;
        lb[i].Caption:= Table1.FieldValues['a'];
        Table1.Next;
      end;
    end;end.
      

  8.   

    6楼的可以Lbl1----Lbl30procedure TForm1.FormCreate(Sender: TObject);
    var
    i:integer;
    begin
       with Table1 do 
        begin
         Active:=true;
         First;
         i:=1;     
         while i<=RecordCount-1 do
            begin
             TLabel(Form1.FindComponent('Lbl'+inttostr(i))).Caption:=FieldValues['FieldName'];     
             inc(i);
            // if i=31 then
            //    exit
            // else
                next;
           end;
       end;
    end;
      

  9.   

    procedure TForm1.FormCreate(Sender: TObject);
    var
    i:integer;
    begin
       with adoquery1 do begin
         Active:=true;
         i:=0;
         next;
         for i:=0 toRecordCount do begin
         TLabel(Form1.FindComponent('Label'+inttostr(i))).Caption:=FieldValues['x_a'];
         next;
         end;
       end;
    end;