Delphi从TObjectList中删除一个对象

时间:2011-07-01 12:09:39

标签: delphi tobjectlist

我有一个包含一个或多个对象的TObject列表(FileEventObjects := TObjectList.Create(True);)。对象需要保留在列表中,直到它们被处理。 (对象列表在应用程序的持续时间内存在。)

我不完全确定如何从列表中删除已处理的对象。

如果FileEventObjects.Delete(i)

,对象是否会被“释放”

是否有任何有用的TObjectLists实例的链接?

问候,彼得。

2 个答案:

答案 0 :(得分:13)

如果您将True传递给TObjectList构造函数(默认情况下它也是True),则无论是否将对象从集合中移除,该列表都会释放任何对象您使用DeleteRemoveClear

除此之外,TObjectList可以像TList一样使用。

答案 1 :(得分:5)

始终记得像

一样向后循环
for i := Pred(objectlist.Count) downto 0 do
begin
  objectlist.items[i].process;
  objectlist.delete(i);
end;

如果从0循环到计数-1,同时删除项目将导致访问违规