0

可能重复:
为什么我会收到枚举类型的“类型没有类型信息”错误

我有一个具有如下属性的组件:-

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 对象检查器不会为我提供“foo”选项的下拉列表,而只会显示一个带有值“2”的编辑字段。

如何让 IDE 显示“VAL2”而不是“2”,并显示选项 VAL0/VAL1/VAL2 等的下拉列表。/?

4

1 回答 1

1

这是因为枚举值不连续。将枚举声明从

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

...至...

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

并且该属性将在对象检查器中正常工作。当然,现在可以选择VAL3,这并不理想。

Delphi 不支持非连续枚举,因此 RTTI 无法表示一组非连续值。

于 2012-05-10T16:29:03.217 回答