Enums 为什么我的C++;建筑商';枚举';不能正确使用RTTI
可能重复:Enums 为什么我的C++;建筑商';枚举';不能正确使用RTTI,enums,c++builder,rtti,Enums,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对象instcont不会给我一个“foo”选项的下拉列表,而是显示
我有一个具有如下属性的组件:-
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对象instcont不会给我一个“foo”选项的下拉列表,而是显示一个值为“2”的编辑字段
如何让IDE显示“VAL2”而不是“2”,并显示选项VAL0/VAL1/VAL2等的下拉列表 这是因为枚举值不连续。将枚举声明更改为
enum class Foo {VAL0, VAL1, VAL2, VAL4 =4};
…到
enum class Foo {VAL0, VAL1, VAL2, VAL3, VAL4};
属性将在对象检查器中正常工作。当然,现在可以选择VAL3,但这并不理想
Delphi不支持非连续枚举,因此RTTI无法表示非连续的值集 如果无法使用连续值定义枚举,则必须编写自定义属性编辑器。谢谢。意识到这个问题是重复的,(doh!),所以请投票结束。