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

Error:Field index out of range?

尚未結案
chrislao
初階會員


發表:86
回覆:69
積分:36
註冊:2002-12-28

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-12-19 20:39:26 IP:202.175.xxx.xxx 未訂閱
for i:=1 to 35 do begin ClientDataSet1.IndexFields[i].DisplayLabel:=i; end; 會出現ClientDataSet1:Field index out of range的錯誤 而使用ClientDataSet1.FieldByName('200412').DisplayLabel:='1';就正常, 為甚麼?
elvis1000
一般會員


發表:6
回覆:50
積分:16
註冊:2004-12-18

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-12-19 21:00:06 IP:220.134.xxx.xxx 未訂閱
IndexField 是定義Index的 FieldByName 是得到 Field Field & Index 是不一樣的,Field是欄位,Index是欄位排序的指標 ----------------------- God bless you! I am Dark_Angel.
------
-----------------------
God bless you!
I am Dark_Angel.
deity
尊榮會員


發表:90
回覆:876
積分:678
註冊:2003-05-09

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-12-19 21:22:58 IP:59.32.xxx.xxx 未訂閱
引言: for i:=1 to 35 do begin ClientDataSet1.IndexFields[i].DisplayLabel:=i; end; 會出現ClientDataSet1:Field index out of range的錯誤 而使用ClientDataSet1.FieldByName('200412').DisplayLabel:='1';就正常, 為甚麼?
chrislao您好: 从错误提示中看出,您ClientDataSet1的索引字段集中,不存在有35个索引,超出了范围,所以会报错,而ClientDataSet1.FieldByName('200412').DisplayLabel:='1'是表示显示字段名为200412的DisplayLabel属性值,存在字段名为200412的当然就不会报错; ——行径窄处,留一步与人行——
chrislao
初階會員


發表:86
回覆:69
積分:36
註冊:2002-12-28

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-12-19 21:54:16 IP:202.175.xxx.xxx 未訂閱
但是我改為ClientDataSet1.IndexFields[1].DisplayLabel:='1'; 也是出錯    
引言:
引言: for i:=1 to 35 do begin ClientDataSet1.IndexFields[i].DisplayLabel:=i; end; 會出現ClientDataSet1:Field index out of range的錯誤 而使用ClientDataSet1.FieldByName('200412').DisplayLabel:='1';就正常, 為甚麼?
chrislao您好: 从错误提示中看出,您ClientDataSet1的索引字段集中,不存在有35个索引,超出了范围,所以会报错,而ClientDataSet1.FieldByName('200412').DisplayLabel:='1'是表示显示字段名为200412的DisplayLabel属性值,存在字段名为200412的当然就不会报错; ——行径窄处,留一步与人行——
elvis1000
一般會員


發表:6
回覆:50
積分:16
註冊:2004-12-18

發送簡訊給我
#5 引用回覆 回覆 發表時間:2004-12-19 22:47:37 IP:220.134.xxx.xxx 未訂閱
改成這樣看看    
if ClientDataSet1.IndexFieldCount<=0 then exit;
for i:=0 to ClientDataSet1.IndexFieldCount-1 do
  begin
    ClientDataSet1.IndexFields[i].DisplayLabel:=i;
  end;//for
----------------------- God bless you! I am Dark_Angel.
------
-----------------------
God bless you!
I am Dark_Angel.
deity
尊榮會員


發表:90
回覆:876
積分:678
註冊:2003-05-09

發送簡訊給我
#6 引用回覆 回覆 發表時間:2004-12-20 09:17:34 IP:218.15.xxx.xxx 未訂閱
chrislao 您好: IndexFields是必需存在有索引字段才能用,请先确定是否设定了索引字段,另ClientDataSet1.IndexFields[i].DisplayLabel:=i;好像很少对IndexFields设定displaylabel? 您是不是要这样:
for i:=1 to 35 do
begin
  ClientDataSet1.Fields[i].DisplayLabel:=i;
end;
如果您想了解ClientdataSet之AddIndex 的话,可参考下面 Chance36 前辈的【Delphi】【發表】ClientdataSet之AddIndex 的使用範例(含D5 Source) http://delphi.ktop.com.tw/topic.php?topic_id=53002 【Delphi】【問題】动态建立ClientDataSet和动态建立字段 http://delphi.ktop.com.tw/topic.php?topic_id=54260 站内有相关多与ClientDataSet的资料,可自行查寻看看 Good Luck ——行径窄处,留一步与人行—— 發表人 -
Ktop_Robot
站務副站長


發表:0
回覆:3511
積分:0
註冊:2007-04-17

發送簡訊給我
#7 引用回覆 回覆 發表時間:2007-04-30 13:44:40 IP:000.000.xxx.xxx 未訂閱
提問者您好:


以上回應是否已得到滿意的答覆?


若已得到滿意的答覆,請在一週內結案,否則請在一週內回覆還有什麼未盡事宜,不然,
將由版主(尚無版主之區域將由副站長或站長)自由心證,選擇較合適之解答予以結案處理,
被選上之答題者同樣會有加分獎勵同時發問者將受到扣 1 分的處分。不便之處,請見諒。


有問有答有結案,才能有良性的互動,良好的討論環境需要大家共同維護,感謝您的配合。

------
我是機器人,我不接受簡訊.
系統時間:2024-04-25 21:34:20
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!