Ich denke ich werde auch dazu übergehen mich um alles selbst zu kümmern. Da will man einmal Verantwortung abgeben
Automatismus hin und her, man sieht, was man davon hat sich auf diesen zu verlassen. Werde alles auf TList<..> umstellen, sauber hinter mir aufräumen und fertig ist.
Nichts desto trotz sehe ich das hier beschriebene Problem im Endeffekt als Bug und habe es für die zukünftige Version XEx++ mal in der
qc gemeldet. Auch wenn wir nicht jeden Update-Zyklus mitnehmen, vielleicht wird es irgendwann gefixt werden. Das meines Erachtens Blöde daran ist, dass man es gar nicht so offensichtlich mitbekommt. Solange man nicht gezielt nach Speicherlecks sucht, was man immer mal wieder tun sollte
Die Stelle der Freigabe in einer ObjectList ist
imho nicht der destructor, sondern die Nachricht, dass ein Objekt aufgelöst wurde
Delphi-Quellcode:
procedure TObjectList<T>.Notify(const Value: T; Action: TCollectionNotification);
begin
inherited;
if OwnsObjects and (Action = cnRemoved) then
Value.DisposeOf;
end;
also ich hab in den Quelltexten in den Generic Units nichts im Destructor finden können.
Ich bin aber sowieso eher klassisch unterwegs und geb alles, was ich erzeugt habe, auch wieder frei.
Gleich nach dem Schreiben vom Constructor fülle ich ebenso den Destructor.
Auf jeden Fall nochmal vielen Dank für Eurer aller Hilfe