所列举的类型的指定价值观不具备所属类别,为什么?[重复]
题
这个问题已经有一个答案在这里:
使用德尔菲2007年我可以写下代码:
interface
TTestType = (ttTest1, ttTest2);
procedure enumName;
var
EnumName: String;
begin
EnumName := GetEnumName(TypeInfo(TTestType), Ord(ttTest1));
end;
这个编译和工作,EnumName包含'ttTest1'在结束的功能。
然而,当时我改变我的TTestType到这样的事情:
interface
TTestType = (ttTest1=1, ttTest2=2);
我的代码突然不会汇编了。 [DCC Error] Test.pas(271): E2134 Type 'TTestType' has no type info
现在我可以做一个const列的串与枚举的名字,但我找到这个肮脏的解决方案。任何人都可以点我在正确的方向或是我想的东西不可能在这里?
解决方案
我看不到任何差异之间段,但是假设你有没有东西像"将=(x=1,y=2);".这将防止从德尔福产生RTTInformation.这是一个编译器限制,至少直到D2010.
不隶属于 StackOverflow