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

請問List index out of bounds(1)之錯誤

尚未結案
shing.net
中階會員


發表:207
回覆:124
積分:66
註冊:2002-03-16

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-06-02 20:10:12 IP:211.74.xxx.xxx 未訂閱
我使用 PageControl 內有幾個設好的 TTabSheet 然後在程式中執行 PageControl.ActivePage.Free; PageControl.ActivePage := PageControl.Pages[PageControl.PageCount - 1]; 會出現List index out of bounds(1)之錯誤 請問其原因? 謝謝
chfamy
中階會員


發表:87
回覆:161
積分:54
註冊:2002-05-03

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-06-02 21:15:33 IP:61.219.xxx.xxx 未訂閱
指定的PageControl.ActivePage設為-1或大於所有TabSheet 總數,第一個TabSheet為0(而非1請注意)
StrongLemon
高階會員


發表:10
回覆:166
積分:105
註冊:2004-04-18

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-06-02 22:09:23 IP:211.74.xxx.xxx 未訂閱
剛才試了一下.. 最後一個頁籤Free之後->沒有頁籤了.. PageControl.ActivePage :=PageControl.Pages[PageControl.PageCount - 1]; 才會出現List index out of bounds(1)錯誤.. 所以加入下面判斷吧
if PageControl.PageCount >0 then
  PageControl.ActivePage :=PageControl.Pages[PageControl.PageCount - 1];
原因?->PageControl.Pages[I] ..I必須>0 and < Count-1
Chance36
版主


發表:31
回覆:1033
積分:792
註冊:2002-12-31

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-06-02 22:15:28 IP:211.20.xxx.xxx 未訂閱
引言: 我使用 PageControl 內有幾個設好的 TTabSheet 然後在程式中執行 PageControl.ActivePage.Free; PageControl.ActivePage := PageControl.Pages[PageControl.PageCount - 1]; 會出現List index out of bounds(1)之錯誤
shing.net 你好 我試過不會有這種事,唯一會發生的地方在,把最後一個Tabsheet也Free掉時就會了,因為PageControl.PageCount-1 = -1 所以出錯。如果真要如此做,必須修改程式如下:
   PageControl.ActivePage.Free;
   If PageControl.PageCount > 0 Then //還有TabSheet才可以指定
     PageControl.ActivePage :=
                PageControl.Pages[PageControl.PageCount - 1];
發表人 - chance36 於 2004/06/02 22:17:37
系統時間:2024-05-17 17:28:43
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!