線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:5098
推到 Plurk!
推到 Facebook!

list index out of bounds的問題

缺席
yes123
一般會員


發表:5
回覆:6
積分:2
註冊:2004-09-17

發送簡訊給我
#1 引用回覆 回覆 發表時間:2009-04-14 15:40:51 IP:220.130.xxx.xxx 訂閱
請教各位大大,可否曾遇見過這種現象?

問題:一樣的程式,有一台SQL SERVER2005主機,在區網下,有多台電腦對
SQL SERVER存取, 在A電腦完全OK,但在B電腦執行卻常出現list index out of bounds的錯誤,
實際的程式碼為ComboBox1.itemindex:=0 或
ComboBox1.itemindex:=ComboBox1.items.indexOf('XXX');
以上兩行是非常常見的寫法,在A電腦完全OK,
但在B電腦卻一直在此出現錯誤,但B電腦其他功能卻都很正常。

已處理:1.已經針對B電腦進行小紅傘掃毒,但未發現任何病毒。
2.將A電腦的記憶體裝在B電腦上,問題依舊。
3.將A電腦的網路線拔除裝在B電腦上,問題依舊。

傾向懷疑:1.比較傾向懷疑是硬體造成的,但又不知如何著手去抓問題。
2.也曾懷疑可能要調整主機板Bios,但不知要調整那個項目。

請各位大大給小弟一些建議,真的很困擾。


pprayer
高階會員


發表:35
回覆:185
積分:174
註冊:2002-03-13

發送簡訊給我
#2 引用回覆 回覆 發表時間:2009-04-15 14:09:35 IP:61.63.xxx.xxx 未訂閱
你可在設定Combobox.itemindex的時候列出當時 combobox的內容有哪些
然後查看看什麼樣的情況下 combobox的 items 會變動
yes123
一般會員


發表:5
回覆:6
積分:2
註冊:2004-09-17

發送簡訊給我
#3 引用回覆 回覆 發表時間:2009-04-15 15:20:03 IP:220.130.xxx.xxx 訂閱
感謝 pprayer的回答,我試試看!
HikaruGo
中階會員


發表:22
回覆:69
積分:88
註冊:2007-12-09

發送簡訊給我
#4 引用回覆 回覆 發表時間:2009-04-15 15:23:25 IP:61.62.xxx.xxx 訂閱
 剛試一下ComboBox  不會引發 List Index Out of Bound.


List Index Out of Bound. 可能 Array or ListBox 等元件 存取超過容量



[code delphi]
procedure TForm1.Button1Click(Sender: TObject);
var ss:String;
begin
ComboBox1.itemindex:=ComboBox1.items.indexOf('d');
caption := ListBox1.Items[4]; //Line 33 List Index Out of Bound.
end;

[/code]



或裝ExceptionLog 節省你寶貴的除錯時間


Exception:
----------------------------------------------
2.1 Date : Wed, 15 Apr 2009 15:20:59 0800
2.2 Address: 0047A7AD
2.3 Module : Project1.exe
2.4 Type : EStringListError
2.5 Message: List index out of bounds (4).




Line 33行
Call Stack Information:
--------------------------------------------------------------------------------
|Address |Module |Unit |Class |Procedure/Method |Line|
--------------------------------------------------------------------------------
|0047A7AD|Project1.exe|Unit1.pas |TForm1|Button1Click |33 |
|0047A7AF|Project1.exe|Unit1.pas |TForm1|Button1Click |33 |
RootKit
資深會員


發表:16
回覆:357
積分:419
註冊:2008-01-02

發送簡訊給我
#5 引用回覆 回覆 發表時間:2009-04-15 23:56:22 IP:122.126.xxx.xxx 訂閱
ComboBox 也是會引發的。
不過一般不會發生在給予 ItemIndex 時發生,大概是在 GET or GetObject 調用方法時超出 Items範圍。
例如:調用不存在的 Items[100]:='xxx'; 就會發生。

那如果 A電腦不會,B電腦會。有可是調用引發的 Change 又 Change 事件導致。
檢查一下這段程式碼。
最後最好附上您所使用的 Delphi 版本,因為不同的版本可能也會不同。

參考
yes123
一般會員


發表:5
回覆:6
積分:2
註冊:2004-09-17

發送簡訊給我
#6 引用回覆 回覆 發表時間:2009-04-16 10:21:19 IP:220.130.xxx.xxx 訂閱
感謝 HikaruGo及Rootkit熱心提供意見,
我使用的是D7 D7.1update

因為在我coding 的電腦完全正常沒有任何錯誤,
在客戶端使用時,10台電腦內,約有2-3台有錯誤,
其他ok,而且這些有錯誤的電腦都是同一主機版同一機型,
但也有少數同一主機版同一機型沒有錯誤,
call給硬體廠商反應,回答說可能不同的驅動程式及安裝方式,
有可能造成這種情形,目前正在追踪測試.......

若硬體廠商沒有回應的話,再到有錯誤的電腦,灌D7,
建立coding的環境,屆時再看看有無錯誤訊息發生。

這些需要些時間,若有任何結論,會通知各位大大,感恩!!
系統時間:2017-10-22 1:39:30
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!