types dénombrées avec les valeurs spécifiées ne sont pas appartenue, pourquoi? [dupliquer]

StackOverflow https://stackoverflow.com/questions/3054444

  •  27-09-2019
  •  | 
  •  

Question

    

Cette question a déjà une réponse ici:

         

Utilisation de Delphi 2007 Je peux écrire le code suivant:

interface
TTestType = (ttTest1, ttTest2);

procedure enumName;
var
  EnumName: String;
begin
  EnumName := GetEnumName(TypeInfo(TTestType), Ord(ttTest1));
end;

Cette compile et œuvres, EnumName contient « ttTest1 » à la fin de la fonction.

Cependant, quand je change mon TTestType à quelque chose comme ceci:

interface
TTestType = (ttTest1=1, ttTest2=2);

Mon code soudain ne compilera pas plus. [DCC Error] Test.pas(271): E2134 Type 'TTestType' has no type info

Maintenant, je peux faire un tableau const de chaîne avec les noms de ENUM, mais je trouve cela une solution sale. point que quelqu'un peut me dans le bon sens ce que je cherche quelque chose d'impossible ici?

Était-ce utile?

La solution

Je ne vois pas de différence entre les extraits, mais supposons que vous avez fait quelque chose comme "ttype = (x = 1, y = 2);". Cela permettrait d'éviter de générer Delphi RTTInformation. Il est une limitation du compilateur au moins jusqu'à D2010.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top