Einzelnen Beitrag anzeigen

Blup

Registriert seit: 7. Aug 2008
Ort: Brandenburg
1.429 Beiträge
 
Delphi 10.4 Sydney
 
#6

AW: Destroy wird nach free nicht aufgerufen

  Alt 28. Mär 2013, 08:39
Delphi-Quellcode:
{...}
destructor Destroy; virtual;
Ein Teil des Custom Objects
die anderen descructor`s mit override überschrieben
wenn ich destroy aufrufe kein Problem, mit free
wird destroy nicht aufgerufen

Was könnte ich übersehen haben
Jede Klasse hat eine Liste der virtuellen Methoden.
Für abgeleitete Klassen wird eine Kopie dieser Tabelle erstellt und Einträge überschrieben (override) oder neue hinzufügen (virtual).

Mit "Destroy; virtual;" gibt es dann zwei Einträge für Destroy in deiner Klasse.
Free kennt nur den Index des orginalen Destroy in der Tabelle, den schon die Klasse TObject deklariert.
Deshalb immer override für Destroy:
Delphi-Quellcode:
{...}
destructor Destroy; override;
  Mit Zitat antworten Zitat