TStringList是否可以自动释放附加到其项目的对象?

时间:2013-02-18 12:31:06

标签: delphi

我正在向TObject添加一些TStringList个后代,例如通过调用AddObject。当我释放列表对象时,我希望它们被释放。有没有办法实现这个目标?

1 个答案:

答案 0 :(得分:14)

TStringList的{​​{3}}属性应设置为True,以便列表在销毁时释放其对象。这可以通过调用OwnsObjects或在创建后显式设置属性来实现。最好将OwnsObjects设置为对象构造的一部分。

constructor overload that receives the OwnsObjects parameter描述了这样的属性:

  

OwnsObjects 属性指定字符串列表是否拥有存储的对象。如果 OwnsObjects 属性设置为True,则Destroy析构函数将释放为这些对象分配的内存。