使用Delphi 7处理控制台应用程序,并遇到了问题.我在第26行遇到错误 str := GetEnumName(TypeInfo (words[3].group), 错误显示“[错误] Project1.dpr(26):TYPEINFO标准函数需要一个类型标识符”如果有人可
str := GetEnumName(TypeInfo (words[3].group),
错误显示“[错误] Project1.dpr(26):TYPEINFO标准函数需要一个类型标识符”如果有人可以帮助这个,那将是一个很大的帮助!
干杯!
program Project1; {$APPTYPE CONSOLE} uses SysUtils, TypInfo; type wordset = Record word : String; group : (flavour, colour, place, animal); end; Var words : Array [1..50] of wordset; str : string; groups: string; Begin words[1].word := 'chocolate'; words[1].group := flavour; words[2].word := 'vanilla'; words[2].group := flavour; words[3].word := 'strawberry'; words[3].group := flavour; str := GetEnumName(TypeInfo (words[3].group), integer(group)); readln; end.您试图传递枚举字段而不是类型标识符.您需要单独声明此枚举(TGroup类型下面的示例中的内容).无论如何,对于每个Type标识符使用T前缀都有一个不成文的约定,因此您可以轻松识别Type.这就是我将Wordset重命名为TWordset的原因. word也不是字段或变量的好名称,因为它也是Delphi中的数据类型.
program Project1; {$APPTYPE CONSOLE} uses SysUtils, TypInfo; type TGroup = (Flavour, Color, Place, Animal); type TWordset = record Name: string; Group: TGroup; end; var Str: string; Words: array [1..50] of TWordset; begin Words[1].Name := 'Vanilla'; Words[1].Group := Flavour; Words[2].Name := 'Green'; Words[2].Group := Color; Words[3].Name := 'Home'; Words[3].Group := Place; Words[4].Name := 'Cat'; Words[4].Group := Animal; Str := GetEnumName(TypeInfo(TGroup), Integer(Words[3].Group)); Writeln(Str); Readln; end.