unit Unit2;interfaceuses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, DB, ADODB, ExtCtrls, DBCtrls, Grids, DBGrids, StdCtrls, Mask;type
  TForm1 = class(TForm)
    DataSource1: TDataSource;
    DBGrid1: TDBGrid;
    DBNavigator1: TDBNavigator;
    ADOConnection1: TADOConnection;
    ADOTable1: TADOTable;
    Button1: TButton;
    ADOQuery1: TADOQuery;    GroupBox1: TGroupBox;
    GroupBox2: TGroupBox;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    DBEdit1: TDBEdit;
    DBEdit2: TDBEdit;
    DBEdit3: TDBEdit;
    DBEdit4: TDBEdit;
    DBEdit5: TDBEdit;
    ADOQuery2: TADOQuery;
    procedure Button1Click(Sender: TObject);
    procedure DBEdit1Change(Sender: TObject);
    procedure DBGrid1CellClick(Column: TColumn);
  private
    { Private declarations }
  public
    { Public declarations }
  end;var
  Form1: TForm1;implementation{$R *.dfm}procedure TForm1.Button1Click(Sender: TObject);
begin
DataSource1.Dataset:=ADOQuery1;with adoquery1 do
begin
close;
sql.clear;
sql.add('select T_USR from T_NAME');
open;
end;
end;procedure TForm1.DBEdit1Change(Sender: TObject);
begin
  with adoquery1 do
  begin
  sql.Clear;
  sql.Add('select  编号 from T_NAME where  '''+format('%s',[trim(edit1.text)])+''');
  open;
  end;end;procedure TForm1.DBGrid1CellClick(Column: TColumn);
begin
edit1.text:=colume.field.asstring;
dbgrid.visible:=false;
with adoquery2 do
  begin
    sql.Clear;
    sql.Add('select * from T_NAME where sno='''+format('%s',[trim(edit1.text)])+''');
    open;
    edit2.text:=fieldbyname('用户名').asstring;
    edit3.text:=fieldbyname('密码').asstring;
    edit4.text:=fieldbyname('姓名').asstring;
    edit5.text:=fieldbyname('其他').asstring;
  end;
end;
end.
错误提示
构建
  [错误] Unit2.pas(65): Undeclared identifier: 'edit1'
  [错误] Unit2.pas(65): Unterminated string
  [错误] Unit2.pas(71): '.' expected but ';' found
  [错误] Unit2.pas(75): Undeclared identifier: 'edit1'
  [错误] Unit2.pas(75): Undeclared identifier: 'colume'
  [错误] Unit2.pas(75): Missing operator or semicolon
  [错误] Unit2.pas(76): Undeclared identifier: 'dbgrid'
  [错误] Unit2.pas(80): There is no overloaded version of 'Trim' that can be called with these arguments
  [警告] Unit2.pas(87): Text after final 'END.' - ignored by compiler
  [致命错误] Project1.dpr(5): Could not compile used unit '..\..\..\..\原来的文件\我的文档\桌面\Unit2.pas'如何解决?谢谢!

解决方案 »

  1.   

    很多控件没定义,你不能直接拷代码进去就可以的了,得放控件啊。
    'edit1','dbgrid'
      

  2.   

    很多控件没定义,你不能直接拷代码进去就可以的了,得放控件啊。
    'edit1','dbgrid'
      

  3.   

    你的界面上就没有Edit这个控件
    你在你的界面上拖一个TEdit控件 name为Edit1
      

  4.   

    把你的DBEdit1 DBEdit2 DBEdit3  DBEdit4  DBEdit5改成edit1...
      

  5.   

    已经改了 原来控件名是dbedit 代码中是edit该后编译得出下面结果
    构建
      [错误] Unit2.pas(65): Unterminated string
      [错误] Unit2.pas(66): ')' expected but identifier 'open' found
      [错误] Unit2.pas(75): Undeclared identifier: 'colume'
      [错误] Unit2.pas(75): Missing operator or semicolon
      [错误] Unit2.pas(76): Undeclared identifier: 'DBGrid'
      [错误] Unit2.pas(80): Unterminated string
      [错误] Unit2.pas(81): ')' expected but identifier 'open' found
      [致命错误] Project1.dpr(5): Could not compile used unit '..\..\..\..\原来的文件\我的文档\桌面\Unit2.pas'
    1   如果在程序中使用
    sql.Add('select * from T_NAME where sno='+format('%s',[trim(edit1.text)])+');中的 format()和trim函数,需要在签名声明或定义吗?这两个是系统函数吧?
    2 下面这段属性定义的程序
    DBGrid.visible:=false;
    我已经在对象属性中定义过了,还需要在代码中重新定义吗?
    谢谢!