可能重复:
Why do I get “type has no typeinfo” error with an enum type
我有一个具有如下属性的组件: -
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没有给我一个'foo'选项的下拉列表,但只显示一个值为'2'的编辑字段。
如何让IDE显示“VAL2”而不是“2”,并显示选项VAL0 / VAL1 / VAL2等的下拉列表?
答案 0 :(得分:1)
这是因为枚举值不是连续的。从
更改枚举声明enum class Foo {VAL0, VAL1, VAL2, VAL4 =4};
...到...
enum class Foo {VAL0, VAL1, VAL2, VAL3, VAL4};
该属性将在对象检查器中正常工作。当然,现在可以选择VAL3,这并不理想。
Delphi不支持非连续枚举,因此RTTI无法表示非连续的值集。