异常解释,欢迎大家发言!(80分)

  • 主题发起人 主题发起人 Jar
  • 开始时间 开始时间
J

Jar

Unregistered / Unconfirmed
GUEST, unregistred user!
我在编译程序时,出现如下问题:Project StripePro.exe raised exception
class EListError with message'List index out of bounds (0)'.Process
stopped. Use Step to Run to continue.
据《Delphi5.0开发人员手册》简单介绍为“该异常表明传递给TList对象的下标超出边界”。
对此,不甚明白,哪位能给一些解释?谢谢
 
如果你的 list 的 items 只有6
你操作 7 ,将出现上述情况
 
能不能贴出来看.
List index out of bounds (0) 说明list中没有item
 
比如你的TList构件有五行,你却引用了第六行,就会出这个错了
 
或者是你不注意,令到取list index值时,取得的是-1也会出现这种情况,最常见就是比如
你做个循环:
cnt:=listbox1.count;
for i:=0 to cnt-1 do //这里就会当listbox1没内容时会出错
begin
showmessage(listbox1.items.strins)
end;
 
是的﹐是的﹐你超出下標了。你看看有多少行﹐是不是超出極限了。還有﹐若你只有5項﹐
你卻要去引用第六項﹐就會出這問題。
 
对,肯定是你引用一个没有的项而引起出错的。我也试过了。
 
for i:=1 to listbox1.listcount do
begin
showmessage(listbox1.items)
end;
 
是在运行一个动态数组时发生的。
 
动态数组应该先用SetLength分配空间。
 
还用多说吗?下标越界了。
 
动态数组啊,同意dq所说的,没用SETLENGTH给动态数组分配空间的话好像也会有这样的错误的
 
已经用setlength分配空间了。
 
结束吧,好象不能得出更好的结论了。
 
后退
顶部