Bonjour,

Je vous propose un nouvel élément à utiliser : [Delphi]Nom des types énumérés

Afficher le nom des constantes de définition d'un type énuméré.



NOTES : C'est un truc tout simple pour afficher les nom de constante utilisés dans un type énuméré. Il permet aussi de déterminer l'indice dans le type en ne connaissant que le nom.



Par exemple si on définit un type enuméré du style TMonTypeEnum=(mtUN,mtDEUX,mtTROIS), Delphi traite les variables de ce type comme des variables de type ordinal. Il n'est pas directement possible d'en afficher le nom comme on affiche un entier avec IntToStr. Le plus souvent on utilise un Case Of pour donner les noms :

Var t:TmonTypeEnum;

...

Case t Of

mtUn:LeNom:='mtUN';

mtDeux:LeNom:='mtDEUX';

mtTrois:LeNom:='mtTROIS';

End;



Or il est possible de demander à Delphi de conserver les noms dans le .EXE et de les obtenir. Je ne savais pas du tout que c'était possible, c'est donc pour cela que je poste ce truc. Je n'était peut-être pas le seul à ne pas le savoir.



Dans l'exemple ci dessus il suffit de faire

LeNom:=GetEnumName(TypeInfo(TMonTypeEnum),Integer(t));



GetEnumName n'est pas documentée dans l'aide de Delphi 6. Il est vrai que son utilisation est plutôt rare...



Qu'en pensez-vous ?