Einzelnen Beitrag anzeigen

Popov
(Gast)

n/a Beiträge
 
#1

TObjectList und Delete

  Alt 31. Okt 2012, 20:39
Nur eine kleine Frage. TObjectList ist ja von TList abgeleitet. So weit, so gut. Mal von den paar kleinen Unterschieden abgesehen enthält TObjectList zusätzlich die Eigenschaft OwnsObjects. Soweit ich TList verstanden (ohne mich mit dem Code auseinander gesetzt zu haben) kümmert man sich manuell um die Freigabe der Objekte. Ist bei TObjectList OwnsObjects True, wird das Objekt automatisch freigegeben. So steht es zumindest in der OH. Dort steht: "Bei Aufruf von Delete oder Remove wird das Objekt aus der Liste entfernt und das gelöschte Objekt freigegeben". Da TList also die Eigenschaft nicht besitzt, muß man sich laut OH manuell um die Freigebe der Objekte kümmern, bei TObjectList geschied das automatisch (bei True).

Nun, das schient der große Unterschied hier zwischen den beiden Remove zu sein. Kommen wir nun zu Delete. Obwohl, im Gegensatz zu Remove, in der OH Delete unter 'Abgeleitet von TList' steht, scheint OwnsObjects trotzdem Einfluß drauf zu haben. Unter Delete steht: "Hinweis: Der für das Element reservierte Speicher wird von Delete nicht freigegeben. Hierzu muss die Eigenschaft Capacity neu gesetzt werden.".

Also was nun? Entweder ich verstehe die OH nicht oder den Sinn des Ganzen.
  Mit Zitat antworten Zitat