Guten Morgen,
und man sollte vielleicht erwähnen, dass TObjectList von TList abgeleitet ist. Weiterhin sollte man erwähnen, dass es zwischen einem Zeiger und einer Instanz in Delphi keine wesentlichen Unterschiede vorhanden sind - eine Instanz ist im Grunde ein Zeiger auf die Objektstruktur. Deshalb passiert bei der Freigabe hier genau das:
Delphi-Quellcode:
EinObjekt := TObject.Create();
EinObjekt.Name := '1';
Objektliste.Add(EinObjekt);
{EinObjekt.Destroy;
EinObjekt := nil; Das Objekt in der Liste geht auch verloren!}
EinObjekt := TObject.Create();
EinObjekt.Name := '2';
Objektliste.Add(EinObjekt);
Wenn Du "EinObject.Destroy" machst, dann gibts Du das Objekt frei - in der Liste ist aber immer noch die Adresse des Objektes gespeichert, das inzwischen aber nicht mehr existiert.
Grüße