2012-05-10 39 views
0

工作可能重複:
Why do I get 「type has no typeinfo」 error with an enum type爲什麼我的C++ Builder的 '枚舉' 未正確使用RTTI

我有這樣的性的成分: -

enum class Foo {VAL0, VAL1, VAL2, VAL4 =4}; 

class TDummy : public TComponent 
{ 
... 
    Foo f; 
    TDummy() : f(Foo:VAL2) {}; 

__published: 
    __property Foo foo{ read = f, write = f}; 
} 

然而,在安裝時,IDE對象instpector不給我爲「富」選項的下拉列表中,而只是顯示一個編輯欄中值爲'2'。

我怎樣才能得到IDE以顯示「值2」,而不是「2」,並顯示選擇VAL0/VAL1/VAL2等下拉列表../?

回答

1

這是因爲枚舉值不是連續的。從

enum class Foo {VAL0, VAL1, VAL2, VAL4 =4}; 

...更改枚舉聲明...

enum class Foo {VAL0, VAL1, VAL2, VAL3, VAL4}; 

而且屬性將在Object Inspector正常工作。當然,現在可以選擇VAL3,這並不理想。

德爾福不支持不連續的枚舉,所以沒有辦法的RTTI可以代表的數值的非鄰接集。

+1

如果您無法定義具有連續值的枚舉,則必須改爲編寫自定義屬性編輯器。 –

+0

謝謝。意識到這個問題是重複的,(doh!)所以請投票結束。 – Roddy