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

物件型別判斷與轉換問題

缺席
g9221712
高階會員


發表:145
回覆:344
積分:162
註冊:2006-07-06

發送簡訊給我
#1 引用回覆 回覆 發表時間:2007-01-27 16:32:14 IP:220.134.xxx.xxx 訂閱
物件型別判斷與轉換問題
各位前輩:
我在From中,想處理自己設計的物件的一些屬性,在表單處理上,為了捉取並判斷表單所有物件屬性,並作判斷和處理
所以我使用兩個物件一個為我自己設定的UDBEDIT一個為UCOMBOBOX,且都具備相同的DB_Field_Key_TYPE屬性
且兩個物件內的DB_Field_Key_TYPE屬性的型態皆為 TDB_Field_KEY_TYPE = (tcPrimary_Key, tcNon_Key);

for i := 0 to FRM.ComponentCount - 1 do
begin
if FRM.Components[i] is TYaoDBEdit then
begin
if TYaoDBEdit(FRM.Components[i]).DB_Field_Key_TYPE = tcPrimary_Key then
begin
...處理我的程序
end;
end;
end;
但我在為加入UCOMBOBOX的自訂UNIT單元時,編譯可以過,加入UCOMBOBOX的自訂UNIT單元後,就會出現,如附圖的錯誤
無法進行編譯(Incompatible type),但是由上述的FRM.Components[i] is TYaoDBEdit,我在執行表單的型別轉換前
我有先確認為TYaoDBEdit才進行強制型別轉換和判斷 TYaoDBEdit(FRM.Components[i]).DB_Field_Key_TYPE = tcPrimary_Key
但是,不知道為何還會出現這樣的錯誤!
懇請各位前輩給予提示,因為不知道自己這樣講清楚或不清楚,若前輩們還是無法理解我想問的問題,我可以將操作的
畫面,錄影成動畫檔,操作說明!
感謝


------
「人們所以覺得寂寞,是因為他們會築牆,卻不會搭橋。」
程式寫的越久,卻發現自己越來越不會寫程式!
g9221712
高階會員


發表:145
回覆:344
積分:162
註冊:2006-07-06

發送簡訊給我
#2 引用回覆 回覆 發表時間:2007-01-27 16:45:22 IP:220.134.xxx.xxx 訂閱
我看到版上有這樣的討論
http://delphi.ktop.com.tw/board.php?cid=35&fid=70&tid=63202
同樣是TCBnames 的型態,但一個是Combotest1 Unit 中的TCBNames 另一個卻是ComboTest2 Unit 中的TCBnames ,看起來一樣其實對Delphi來說是不一樣的型態
建議你將Combotest1的 Type TCBnames=(Cb1,Cb2,Cb3); 這行定義拿掉即可,
因為Combotest1 有uses 到Combotest2,所以其中的TCBnames會用到同樣是Combotest2裏面定義的TCBnames。

但是我因為是處理在物件內,不知道是否有無更好的解決方式! 怎麼開始覺得可以用了!又問題一堆.....
------
「人們所以覺得寂寞,是因為他們會築牆,卻不會搭橋。」
程式寫的越久,卻發現自己越來越不會寫程式!
g9221712
高階會員


發表:145
回覆:344
積分:162
註冊:2006-07-06

發送簡訊給我
#3 引用回覆 回覆 發表時間:2007-01-27 21:10:16 IP:220.134.xxx.xxx 訂閱
我真是傻啦! 問題已經解決!
將物件的unit引用,由表單的Uses區段,移到implementation區段去引用,就不會有問題了!

不過想求甚解,不知道為何型別也會造成這樣的問題!

------
「人們所以覺得寂寞,是因為他們會築牆,卻不會搭橋。」
程式寫的越久,卻發現自己越來越不會寫程式!
系統時間:2024-05-17 9:58:09
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!