自定义一个类: TADOQryAncestor, 改写了Create:
  TADOQryAncestor = class(TADOQuery)
  private
    constructor Create(AOwner: TComponent); override;
    { Private declarations }
  public
    { Public declarations }
  end;constructor TADOQryAncestor.Create(AOwner: TComponent);
begin
  inherited Create(AOwner);
  showmessage('create');
end;但是我定义了TADOQryAncestor的对象: 
  ADOQryTmp := TADOQryAncestor.Create(self); //这里为什么不执行TADOQryAncestor.create里的语句呢 ?

解决方案 »

  1.   

    unit Unit1;interfaceuses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, DB, ADODB;type
      TForm1 = class(TForm)
        ADOQuery1: TADOQuery;
        procedure FormCreate(Sender: TObject);
      private
        { Private declarations }
      public
        { Public declarations }
      end;
      Tado  = Class(TAdoquery)
      public
        constructor Create(AOwner: TComponent); override;
      end;
    var
      Form1: TForm1;implementation{$R *.dfm}
    constructor Tado.Create(AOwner: TComponent);
    begin
      Inherited Create(AOwner);
      ShowMessage('asdf');
    end;procedure TForm1.FormCreate(Sender: TObject);
    var
      ado: TAdo;
    begin
      ADo := TAdo.Create(self);
    end;end.可以通过的,显示啊
      

  2.   

    没有错啊,我帮你试了一下--------------------->
    unit Unit1;interfaceuses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, StdCtrls, DB, ADODB;type
     TADOQryAncestor = class(TADOQuery)
      private
        constructor Create(AOwner: TComponent); override;
        { Private declarations }
      public
        { Public declarations }
      end;
      TForm1 = class(TForm)
        Button1: TButton;
        ADOQuery1: TADOQuery;
        procedure Button1Click(Sender: TObject);
      private
        { Private declarations }
      public
        { Public declarations }
      end;var
      Form1: TForm1;implementationconstructor TADOQryAncestor.Create(AOwner: TComponent);
    begin
      inherited Create(AOwner);
      showmessage('create');
    end;{$R *.dfm}procedure TForm1.Button1Click(Sender: TObject);
    var
      adoqrytmp:TADOQryAncestor;
    begin
      ADOQryTmp := TADOQryAncestor.Create(self); //?里?什么不?行TADOQryAncestor.create里的?句呢 ?
    end;end.