Delphi-Quellcode:
type TBaseForm = class(TForm)
private
btStart : TButton;
public
constructor Create; virtual;
end;
Dein Konstruktor ist schon mal falsch.
Ab der Klasse
TComponent gibt es einen
virtuellen Konstruktor.
Wenn man möchte, dass die
VCL in Bezug auf Persistenz (als Laden von
DFM Resourcen) richtig funktioniert muss man sich an das halten, was die
VCL vorgibt.
Delphi-Quellcode:
type TBaseForm = class(TForm)
private
btStart : TButton;
public
constructor Create(AOwner:TComponent); override;
end;
constructor TBaseForm.Create(AOwner:TComponent);
begin
inherited Create(AOwner); // darf auf keinen Fall fehlen!
// ab hier eigener Code
end;
Alle Klassen, die von TComponent abgeleitet sind haben sozusagen die Freiheit aufgegeben, eigene Konstruktoren zu deklarieren zu dürfen.
Nur noch folgender Konstruktor ist zulässig:
constructor Create(AOwner:TComponent); override;
Im Gegenzug werden alle published Properties auf den
DFM-Resourcen gelesen.