adoquery的SQL是:select * from hr_sys_功能项procedure TForm1.Button1Click(Sender: TObject);begin
  ADOQuery.Active :=true;
  with ADOQuery do
    begin
    while  not adoquery.eof do
    begin
    with TLabel.Create(self) do  ;
    begin
    NAME:=adoquery.FieldValues ['功能主键'];
    Caption := adoquery.FieldValues ['功能项名'];
    Parent := panel_mod;
    Left :=adoquery.FieldValues['左边'];
    top:=adoquery.FieldValues['上边'];
    Width:=adoquery.FieldValues['宽'];
    Height:=adoquery.FieldValues['高'];
    end;
end;
end;
end;

解决方案 »

  1.   

    你不要用fieldvalues,用field.as语句来实现字段值;比如你的功能主键可能是数字型,而label.name是字符型.你看看编译错误提示是什么吧?
      

  2.   

    procedure TForm1.Button1Click(Sender: TObject);begin
      ADOQuery.Active :=true;
      with ADOQuery do
        begin
        while  not adoquery.eof do
        begin
        with TLabel.Create(self) do  ;  //没这个 ; 吧??
        begin
        NAME:=adoquery.FieldValues ['功能主键'];
        Caption := adoquery.FieldValues ['功能项名'];
        Parent := panel_mod;
        Left :=adoquery.FieldValues['左边'];
        top:=adoquery.FieldValues['上边'];
        Width:=adoquery.FieldValues['宽'];
        Height:=adoquery.FieldValues['高'];
        end;
    end;
    end;
    end;
      

  3.   

    除了楼上说的以为
    还要label.visable:=true;
      

  4.   

    >NAME:=adoquery.FieldValues ['功能主键']
    可能这个值是中文的,要知道控件的Name属性都要英文的。
      

  5.   

    你的错误一定在adoquery.FieldValues ['*']的取值中,你可以改变一下取值方式,还有
    1.你已经with adoquery do, adoquery.fieldvalues['*']中的adoquery就不用加
    2.你少了next;使记录集向下走
      

  6.   

    终于得出了正确的结果,开心.多谢大家!
    另外,我认为应该在数据表中做联合主键.
    procedure TForm1.Button1Click(Sender: TObject);begin
      ADOQuery.Active :=true;
      with ADOQuery do
        begin
        while  not eof do
        begin
        with TLabel.Create(self) do
        begin
        NAME:=fieldbyname('功能主键').AsString;
        Caption :=fieldbyname('功能主键').AsString ;
        Parent :=panel_mod;
        Left :=fieldbyname('左边').AsInteger  ;
        top:=fieldbyname('上边').AsInteger ;
        Width:=fieldbyname('宽').AsInteger;
        Height:=fieldbyname('高').AsInteger;
        visible:=true;   //这个应该是可加可不加的;默认是TRUE
        end;
        next;
    end;
    end;
    end;