我有一个FileEventObjects := TObjectList.Create(True);
包含一个或多个对象的 TObject 列表 ( )。对象需要保留在列表中,直到它们被处理。(对象列表在应用程序期间存在。)
我不完全确定如何从列表中删除已处理的对象。
如果我这样做,对象会被“释放”吗FileEventObjects.Delete(i)
是否有任何有用的 TObjectLists 示例的链接?
问候,彼得。
我有一个FileEventObjects := TObjectList.Create(True);
包含一个或多个对象的 TObject 列表 ( )。对象需要保留在列表中,直到它们被处理。(对象列表在应用程序期间存在。)
我不完全确定如何从列表中删除已处理的对象。
如果我这样做,对象会被“释放”吗FileEventObjects.Delete(i)
是否有任何有用的 TObjectLists 示例的链接?
问候,彼得。
如果您传递True
给TObjectList
构造函数(True
默认情况下也是如此),则列表会在您从集合中删除任何对象后立即释放它,无论您使用Delete
,Remove
还是Clear
.
除此之外,TObjectList
可以像TList
.
永远记得像往回循环一样
for i := Pred(objectlist.Count) downto 0 do
begin
objectlist.items[i].process;
objectlist.delete(i);
end;
如果您在删除项目时从 0 循环到计数 -1,您将遇到访问冲突