Zitat von
Surrounder:
ich gebe das meiner Meinung nach auch wieder richtig frei, und zwar im destructor von TCLStation
Delphi-Quellcode:
destructor TCLStation.dCLStation();
begin
if Assigned( wellendat ) then begin
wellendat.Destroy;
wellendat := nil;
end;
end;
Dein Code ist falsch bzw. "ungünstig programmiert".
Ein Destruktor muss heisst immer
Destroy heisen!!
Andere Namen, wie z.B. beim Konstruktor möglich sind nicht erlaubt!!
Richtig ist:
Delphi-Quellcode:
destructor TCLStation.Destroy;
begin
wellendat.Free;
// Auf keinen Fall inherited vergessen !!!!!!!
// da sonst ein Speicherleck entsteht
// wichtig ist auch, dasss inherited im Destruktor die letzte Anweisung ist
inherited;
end;
Ich schätze, damit ist dein Speicherleck gefunden.