Einzelnen Beitrag anzeigen

shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#4

AW: Meine Probleme mit Delphi-OOP ...

  Alt 22. Feb 2012, 14:50
Ich geb Dir mal eine Teilantwort auf deine Fragen.
Also der Konstruktor von TComponent ist virtuell.
Damit ist auch der Konstruktor aller davon abgeleiteten Klassen (insbesondere TForm) auch virtuell.
Sobald ein virtueller Konstruktor existiert, ändern sich die Spielregeln für die Klassen (und alle davon abgeleiteten Klassen).
Wenn man nun einen anderen Konstruktor als den vordefinierten virtuellen Konstruktor benützt bekommt man das Problem dass der selbstdefinierte Konstruktor unter Umständen nicht aufgerufen wird.
Delphi-Quellcode:
// Beispielcode
// Hier wird ein Formular erzeugt aber dabei nur der virtuelle Standardkonstruktor aufgerufen
Application.CreateForm(TForm, Form1);
Daher gilt die Regel:
keine neuen Konstruktoren für Klassen definieren, die von TComponent abgeleitet sind!!
Nur diese Signatur ist erlaubt
Delphi-Quellcode:
public
    constructor Create(AOwner: TComponent); override;
    destructor Destroy; override;
Andreas
  Mit Zitat antworten Zitat