如何动态new一个ADOQuery控件,就像在private里面定义一样,能够在这个unit文件的所有函数里面用它。
例如:在private里面定义 int a;那么a这个变量就可以在unit里面的所有函数里面调用它

解决方案 »

  1.   

    这是我做的!!给你看一下!!procedure TFrmLogin.btn1Click(Sender: TObject);
    var
      ADOTable_login: TADOTable;
    begin
      username:= edtUser.text;
      ADOTable_login :=TADOTable.Create(nil);
      ADOTable_login.ConnectionString:=Get_DBConnec;
      ADOTable_login.CursorType:=ctStatic;
      ADOTable_login.TableName:='moneyman';
      ADOTable_login.Filter:='cop_code='''+edtUser.Text+'''';
      ADOTable_login.Filtered:=true;
      try
        ADOTable_login.Open;
      except
        Application.MessageBox('数据库连接失败,请检查!','错误',0);
    ………………
    ………………
      

  2.   

    如果你想象 "a这个变量就可以在unit里面的所有函数里面调用它"就把
    var
      ADOTable_login: TADOTable;
    放在 implementation 后面.ADOTable_login :=TADOTable.Create(nil);
    放在FormCreate里
      

  3.   

    unit Unit1;interfaceuses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, DB, ADODB, StdCtrls;type
      TForm1 = class(TForm)
        ADOTable1: TADOTable;
        Button1: TButton;
        edtDB: TEdit;
        edtUser: TEdit;
        procedure FormCreate(Sender: TObject);
        procedure Button1Click(Sender: TObject);
        procedure FormClose(Sender: TObject; var Action: TCloseAction);
      private
        { Private declarations }
      public
        { Public declarations }
      end;var
      Form1: TForm1;implementationvar
      ADOTable_login: TADOTable;{$R *.dfm}procedure TForm1.FormCreate(Sender: TObject);
    begin
      ADOTable_login :=TADOTable.Create(nil);
      ADOTable_login.ConnectionString:=edtDB.Text;
      ADOTable_login.CursorType:=ctStatic;
    end;procedure TForm1.Button1Click(Sender: TObject);
    begin
      ADOTable_login.TableName:='moneyman';
      ADOTable_login.Filter:='cop_code=iew'''+edtUser.Text+'''';
      ADOTable_login.Filtered:=true;
      try
        ADOTable_login.Open;
      except
        Application.MessageBox('数据库连接失败,请检查!','错误',0);
      end
    end;procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
    begin
      ADOTable_login.Free;
      ADOTable_login:= nil;
    end;end.