Einzelnen Beitrag anzeigen

Benutzerbild von sx2008
sx2008

Registriert seit: 15. Feb 2008
Ort: Baden-Württemberg
2.332 Beiträge
 
Delphi 2007 Professional
 
#3

AW: TForm ableiten -> EResNotFound Exception

  Alt 22. Apr 2012, 11:44
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.
  Mit Zitat antworten Zitat