constructor und destructor


Ein nicht einfach zu findender Fehler ist folgender:

Beim Erstellen bzw. Erweitern einer Komponente muß man oft den constructor oder den destructor überschreiben um dort zusätzliche Aufgaben zu erledigen. Durch einen dummen Zufall kann es passieren, daß man die normalen Zeilen

  constructor Create(Owner:TComponent); override;
  destructor Destroy; override;

aus Versehen im private-Teil der Komponente unterbringt. Dies ist natürlich falsch, die Zeilen gehören in den public-Teil, dies wird aber von Delphi weder als Fehler noch als Warnung gemeldet! Die erweiterten Routinen werden einfach nicht aufgerufen, auch ein Breakpoint innerhalb der neuen Prozeduren wird nie erreicht. Trotzdem wird die neue Komponente ordnungsgemäß erstellt, allerdings über den alten constructor, was zu seltsamen Fehlern führen kann.

Delphi 1 Delphi 2 Delphi 3 Delphi 4
nicht getestet Version nicht betroffen getestet

siehe auch:


Delphi FAQ