8

たとえば、 を呼び出しTObjectて、いくつかの子孫をに追加しています。リスト オブジェクトを解放するときに、それらを解放したいと考えています。これを達成する方法はありますか?TStringListAddObject

4

1 に答える 1

14

リストが破棄されたときにそのオブジェクトを解放するには、のOwnsObjectsプロパティをTStringListに設定する必要があります。これは、パラメーターを受け取るコンストラクター オーバーロードをTrue呼び出すか、作成後にプロパティを明示的に設定することで実現できます。オブジェクトの構築の一部として設定することをお勧めします。OwnsObjectsOwnsObjects

ドキュメントでは、プロパティについて次のように説明しています。

OwnsObjectsプロパティは、文字列リストが格納されたオブジェクトを所有するかどうかを指定します。OwnsObjectsプロパティが True に設定されている場合、Destroy デストラクタはそれらのオブジェクトに割り当てられたメモリを解放します。

于 2013-02-18T12:31:06.037 に答える