怎么遍历TObjectList?

wopabe 2015-06-18 08:18:59
比如我这样

procedure ...
var
MyObj: TMyObj;
begin
for MyObj in MyObjList do
...
end;

其中,MyObjList为全局的TObjectList对象
这样运行程序后,关闭程序,报错误:Invalid pointer operation
调试的时候好像不出这个错误
大神帮忙解决下,是不是我的遍历方式有问题啊
...全文
354 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
悠扬之韵 2016-06-27
  • 打赏
  • 举报
回复
我的D7 , 没有ADDRANGE
BambooCaep 2015-06-26
  • 打赏
  • 举报
回复
如果你用的是xe8,请换xe8up1。
lyhoo163 2015-06-26
  • 打赏
  • 举报
回复
遍历TObjectList,涉及代码贴出来,才能分析。
yyfhz 2015-06-25
  • 打赏
  • 举报
回复
LZ可能需要把相关的代码都晒一下才好分析。 单凭 ObjList1.AddRange(ObjList2.ToArray); 可能发生错误的情况有一下几种: 1) 在遍历ObjList1的过程中再往ObjList1插入内容,可能导致循环变量混乱 2) ObjList2已经被释放过了 3) ObjList2中的某一个元素已经被释放过了 4) 在执行了AddRange之后,既对ObjList2中的元素执行了Free/Dispose操作,又对ObjList1中的相应元素执行了Free/Dispose操作,导致同一对象被释放了两次而发生错误
wopabe 2015-06-18
  • 打赏
  • 举报
回复
我查到了,不是这个地方出的问题,是在TObjectList对象之间拷贝的时候 ObjList1.AddRange(ObjList2.ToArray); 出现的这个错误,大神帮忙看下
bdmh 2015-06-18
  • 打赏
  • 举报
回复
你for里面有什么代码,是不是释放了对象,关闭时,你又去访问

16,749

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 语言基础/算法/系统设计
社区管理员
  • 语言基础/算法/系统设计社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧