'list index out of bounds(0)'是什么意思?(200分)

  • 主题发起人 主题发起人 徐明伟
  • 开始时间 开始时间

徐明伟

Unregistered / Unconfirmed
GUEST, unregistred user!
近日,在编程时遇到一问题,在运行程序时总是出现"exception class Elisterror with message 'list index out of bounds(o)'"偶百思不得其解,希望专家解答,感激不尽!!
 
下标超界了呗
比如: listbox.items[0] := 'abcd'. 但是此时listbox.items是空的, 就会出现
上述错误了.
 
exception class Elisterror with message 'list index out of bounds(0)
说明list中没有item.

if listbox1.items.count>0 then ....
 
来晚了:-(
如果是stringlist, 也是这样:
var
a:tstrings;
begin
a:=tstringlist.Create;
a[0]:='10';
就会产生同样错误.
 
TStringList 产生的异常,原因为使用的Index不存在。
 
;你单步走一下,这个问题因该是数据的下标越界了,
不一定就是StringList的。有时候,其它的引用也会引起此问题。
 
引用ListBox或CombBox超界
 
访问的下标不存在

一般对list类的控件(TList, TStringList, TComboBox之类的)最好采用
add, insert, delete方法. 比如:
StringList1.add('string1');

对于值的引用, 可以用indexof来确定下标.

总而言之, 要尽量避免直接引用下标, 要用控件提供的方法.
面向对象编程中也是这么要求的呀. ^_^
 
访问的下标不存在一般对list类的控件(TList, TStringList, TComboBox之类的)最好采用
add, insert, delete方法.
比如:
StringList1.add('string1');
对于值的引用, 可以用indexof来确定下标.
 
www的方法是对的,这一类判断在很多的地方能用到,编程时,往往按自己的想法作了
但是用户可不按你的方法来操作,这时就有很多异常。因此, 你在编程时,要在这方面多想想才可以作出好的作品哦。
 
多人接受答案了。
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
I
回复
0
查看
647
import
I
后退
顶部