Ist es TStringList möglich, die an seine Objekte angehängten Objekte automatisch freizugeben?

8

Ich füge einige TObject Nachkommen einem TStringList hinzu, zB indem ich AddObject aufruft. Ich möchte, dass sie freigegeben werden, wenn ich das Listenobjekt freigebe. Gibt es einen Weg, dies zu erreichen?

    
iMan Biglari 18.02.2013, 12:31
quelle

1 Antwort

14

Die Eigenschaft OwnsObjects von TStringList sollte auf% co_de festgelegt werden %, damit die Liste ihre Objekte bei der Zerstörung freigibt. Dies kann entweder durch Aufruf der -Konstruktorüberladung erreicht werden, die den Parameter True empfängt, oder indem Sie die Eigenschaft explizit nach der Erstellung festlegen. Es ist vorzuziehen, OwnsObjects als Teil der Objektkonstruktion zu setzen.

Die Dokumentation beschreibt die Eigenschaft wie folgt:

  

Die Eigenschaft OwnsObjects gibt an, ob die Liste die gespeicherten Objekte besitzt oder nicht. Wenn die Eigenschaft OwnsObjects auf True festgelegt ist, wird der Destroy-Destruktor den für diese Objekte reservierten Speicher freigeben.

    
iMan Biglari 18.02.2013, 12:31
quelle

Tags und Links