为什么我的C++生成器'枚举'不能在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 不会为我提供"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 无法表示一组不连续的值。

最新更新