Delphi 从 TObjectList 中删除一个对象
我有一个包含一个或多个对象的 TObject 列表 (FileEventObjects := TObjectList.Create(True);
)。这些对象需要保留在列表中,直到它们被处理。 (对象列表在应用程序的持续时间内存在。)
我不完全确定如何从列表中删除已处理的对象。
如果我执行 FileEventObjects.Delete(i)
,该对象会被“释放”吗
?是否有任何 TObjectLists 实用示例的链接?
问候,彼得。
I have a TObject list (FileEventObjects := TObjectList.Create(True);
) containing one or more objects. The objects need to stay in the list until they are processed. (The object list exists for the duration of the application.)
I'm not entirely sure how to remove a processed object from the list.
Will the object be 'freed' if I do FileEventObjects.Delete(i)
Are there any links to useful examples of TObjectLists in action?
Regards, Pieter.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
如果将
True
传递给TObjectList
构造函数(默认情况下也是True
),则一旦您从列表中删除任何对象,列表就会释放该对象。集合,无论您使用Delete
、Remove
还是Clear
。除此之外,
TObjectList
可以像TList
一样使用。If you pass
True
to theTObjectList
constructor (it is alsoTrue
by default), the list frees any object as soon as you remove it from the collection, no matter if you useDelete
,Remove
orClear
.Apart from this,
TObjectList
can be used just likeTList
.始终记住向后循环,就像
从 0 循环到计数 -1 一样,同时删除项目,您将遇到访问冲突
always remember to loop backwards like
if you loop from 0 to count -1 whilst removing items you will get access violations