为何我定义的会出错?
var
ADOQuery:TADOQuery;
begin
ADOQuery:=TADOQuery.create(self);//出错的地方:self未定义
............
...........
............
end;
...............
明天早上听消息(谢谢帮忙)我是初学者:P

解决方案 »

  1.   

    procedure TForm1.FormCreate(Sender: TObject);
    var
     aaa:TButton;
    begin
     aaa:=TButton.Create(self);
     ...
    end;如上是没有问题的。self在TForm1的过程(函数)中表示Form1
    也就是说,在某个类的过程中使用self,表示调用这个方法的这个类的实例。
    而Create()的括号中的对象,是你要创建的对象的owner,负责该对象的创建与销毁你的问题可能是,上述Create方法并不是某个类的方法,或该类的实例不能够作owner
      

  2.   

    使用ADO原生对象的时候最好使用CreateOleObject来进行动态创建因为ADO原生对象就是一个COM对象
      

  3.   

    谢谢你们的回答!
    to  oracle_lover(数据库情人):我肯定TAQOQuery的类的实例可以作owner,
    如果在form中调用是可行的,但
    我现在是存放一个单元内的函数,已经uses了一些相关的文件
    但问题还是未解决???
    to FrameSniper(人类不能不吃饭@手机不能不充电.net):
    ADO原生对象创建的东东,不知如何把数据让DBGrid 控件来显示出来??
      

  4.   

    不是TADOQuery的类的实例做owner
    Txxxxxxx.yyyyy()
    begin
     ADOQuery:=TADOQuery.create(self);
     //这里self代表的是xxxxxxx,而不是ADOQuery
     //xxxxxxx必须是可以做owner的对象,比如说Form
    end;
      

  5.   

    那如何解决如上:ADOQuery未定义的问题???