Zitat von
SirThornberry:
Du solltest im SetItem den Speicher des Objectes auch freigeben bevor du einen neuen Zeiger in die Liste schreibst und der alte Zeiger weg ist und niemand mehr auf den Reservierten Speicher zugreifen kann um diesen frei zu geben.
Entweder direkt da, oder einfach von TList die Notify Methode nutzen. Siehe dazu auch
hier als Beispiel
Notify wird auch korrekt für jedes Element beim Clear aufgerufen. Und das geschieht übrigens auch beim Destructor von TList für die Items. Daher wäre bei Notify auch deine Schleife im Destructor hinfällig.