Hallöle...
Delphi-Quellcode:
procedure TMyList.Notify(const Ptr: TMyclass; Action: TCollectionNotification); // Überschreiben nicht virtual
begin
if (FFreeOnDelete) and (Ptr<>nil) and (Action = cnRemoved) then
Ptr.Free; // Ungültige Zeigeroperation
inherited Notify(Ptr, Action);
end;
..du gibst immer noch den Pointer frei der in der Gesamtliste beibehalten werden soll. Die Liste muß dich über nix in informieren... (Notify kann weg)
Einfach den Listen Eintrag mit DELETE entfernen...fertsch.
Die Instanzen der Hauptliste werden mit der
TObjectList, wenn du endlich mal eine hast, weggeräumt.
Zitat:
und ich noch nicht abschätzen kann welche Auswirkungen ein Wechsel auf TObjectList hat.
Es gibt keine Auswirkungen. Der Unterschied von TObjectList und TList besteht darin das die TObjectList ihre enthaltenen Instanzen wegräumt.