重写Create方法时出现Delphi组件错误00000000

重写Create方法时出现Delphi组件错误00000000,delphi,Delphi,我在Delphi中创建了一个组件,并试图覆盖create方法,如下所示: unit DefButton; interface uses Vcl.Dialogs, Vcl.StdCtrls, Vcl.ExtCtrls, System.SysUtils, System.Classes, Vcl.Controls, Vcl.Graphics, Vcl.Forms; type TDefButton = class(TPanel) private { Private de

我在Delphi中创建了一个组件,并试图覆盖create方法,如下所示:

unit DefButton;

interface

uses
  Vcl.Dialogs,
  Vcl.StdCtrls, Vcl.ExtCtrls,
  System.SysUtils, System.Classes, Vcl.Controls, Vcl.Graphics, Vcl.Forms;

type
  TDefButton = class(TPanel)
  private
    { Private declarations }
  protected
    constructor Create(AOwner: TComponent); override;
  public
    { Public declarations }
  published
    { Published declarations }
  end;

procedure Register;

implementation


constructor TDefButton.Create(AOwner: TComponent);
begin
  ShowMessage('test!');
end;


procedure Register;
begin
  RegisterComponents('Default Controls', [TDefButton]);
end;

end.
但当我运行时,它会显示消息“test”,但随后它会抛出以下消息:

然后它再次显示消息,然后抛出此消息:


你知道会是什么吗?我试着用谷歌搜索,但找不到这个具体案例的答案…

你需要调用
inherited
在构造函数中,因此它调用从祖先类到ToObject构造函数的构造函数链

试试这个:

constructor TDefButton.Create(AOwner: TComponent);
begin
  inherited;
  ShowMessage('test!');
end;

您需要调用
inherited
在构造函数中,因此它调用从祖先类到ToObject构造函数的构造函数链

试试这个:

constructor TDefButton.Create(AOwner: TComponent);
begin
  inherited;
  ShowMessage('test!');
end;