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

使用Typeinfo在列舉型態(Emuerated Type)上的問題

缺席
Coffee
版主


發表:31
回覆:878
積分:561
註冊:2006-11-15

發送簡訊給我
#1 引用回覆 回覆 發表時間:2006-11-20 09:39:49 IP:220.130.xxx.xxx 訂閱
為了操作自訂的列舉型態,我參考了站上的文章找到了GetEnumName, GetEnumValue及TypeInfo等函式,
但是發現一個問題,所有的例子的列舉型態都沒有額外設值,於是程式碼都可以使用,但若額外設值如下程式碼


程式碼:


[code delphi]
type TMyFstType = (fs1, fs2, fs3);

type TMySedType = (sd=0, sd=1, sd=2);
type TMythdType = (td=0, td=2);
type TMyfthType= (ft=1, ft=2);

//接著在函式中使用

implementation

procedure aProc;
var
fst : TMyFstType;
sed : TMySedType;
thd : TMyThdType;
fth : TMyfthType;
begin
// some initializations
showMessage(GetEnumName(TypeInfo(TMyFstType), Ord(fst)));
showMessage(GetEnumName(TypeInfo(TMySedType), Ord(sed)));
showMessage(GetEnumName(TypeInfo(TMyThdType), Ord(thd)));
showMessage(GetEnumName(TypeInfo(TMyfthType), Ord(fth)));
end;
[/code]


則 fst與sed的敘述是可以執行無誤的,但thd與fth則會產生type TmyThdType has no type info//fth則為TMyfthType
翻了BDN..發現也有類似的問題 http://qc.borland.com/wc/qcmain.aspx?d=7992
請問有人遇過這樣的問題嗎?這是bug還是?

------
不論是否我發的文,在能力範圍皆很樂意為大家回答問題。
為了補我的能力不足之處,以及讓答案可以被重複的使用,希望大家能儘量以公開的方式問問題。
在引述到我的文時自然會儘量替各位想辦法,謝謝大家!
編輯記錄
Coffee 重新編輯於 2007-10-24 11:11:13, 註解 無‧
Coffee 重新編輯於 2007-10-24 20:09:13, 註解 無‧
Coffee
版主


發表:31
回覆:878
積分:561
註冊:2006-11-15

發送簡訊給我
#2 引用回覆 回覆 發表時間:2007-10-24 20:10:20 IP:61.224.xxx.xxx 訂閱
此問題在Delphi 2007 for Win32依舊無解,那些compile error的test case最主要是因為RTTI未被產生,我想bug report應該也沒有什麼用了..:P
------
不論是否我發的文,在能力範圍皆很樂意為大家回答問題。
為了補我的能力不足之處,以及讓答案可以被重複的使用,希望大家能儘量以公開的方式問問題。
在引述到我的文時自然會儘量替各位想辦法,謝謝大家!
編輯記錄
Coffee 重新編輯於 2007-10-24 20:11:28, 註解 無‧
系統時間:2024-05-03 23:19:32
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!