Hallo zusammen,
ich denk mal dass die Klassenstruktur aus dem folgenden Beispielgängige Praxis ist:
Delphi-Quellcode:
{ TMyItem }
//----------------------------------------------------------------------------
TMyItem = class
private
FInfo : string;
public
constructor Create;
destructor Destroy; override;
property Info : string read FInfo write FInfo;
end;
{ TMyItems }
//----------------------------------------------------------------------------
TMyItems = class (TObjectList<TMyItem>)
public
constructor Create;
destructor Destroy; override;
procedure AddItem(const AValue:TMyItem);
end;
Ich habe heute in meinem Programm, in der *.dpr Datei die Option
ReportMemoryLeaksOnShutdown eingeschaltet. Und habe beim Schließen der Anwendung dann die Info bekommen, das ich "Speicherlöcher" habe... Hervorgerufen durch nicht freigegebene TMyItem Instanzen...
Ich bin dann darauf gekommen, dass der Fehler an meinem constructor von der Klasse TMyItems liegt. Denn hatte ich wie folgt implementiert:
Delphi-Quellcode:
constructor TMyItems.Create;
begin
inherited;
end;
Nachdem ich dann das
inherited; auf
inherited Create; geändert hatte waren meine "Speicherlöcher" weg...
Woran liegt das? Ich dachte das die Angabe von inherited ausreichend ist... Oder bin ich da heut gedanklich auf dem Holzweg?