Je cherche un mot pour représenter les types énumérés

fredelem Messages postés 136 Date d'inscription   Statut Membre Dernière intervention   -  
 RoMa -

Bonjour à tous. Voici mon problème.

J'ai défini un type énuméré de la façon suivante:

Type
    Semaine=(Lundi, Mardi, Mercredi, Jeudi, Vendredi, Samedi, Dimanche);

Avec ça, si je veux afficher:
     La semaine commence par Lundi et Mardi

Il me suffit d'écrire {après avoir ajouté Typinfo dans la clause Uses}

Showmessage('La semaine commence par '+
GetEnumName(typeinfo(semaine),1)+'  '+
GetEnumName(typeinfo(semaine),2));

Ça marche très bien mais au lieu d'écrire:
GetEnumName(typeinfo(semaine),1)
je préfèrerais écrire plus simplement:
EnumName(semaine,1)

J'ai donc créé la fonction EnumName;
Function EnumName(t:TypeIdentifier; n:byte) ; String;
begin
   Result:=GetEnumName(typeinfo(t),n);
end;

Eh bien, ça ne marche pas. Le compilateur me répond:
  Identificateur non déclaré: TypeIdentifier

Pourtant,si j'écris:
 GetenumName(typeinfo(
et si j'attends que Delphi me suggère quelque chose à écrire derrière, je vois apparaitre: T:TypeIdentifier.
A la place de TypeIdenfier,j'ai essayé TType, ValType et des choses plus folles encore. Rien ne marche. 
Quelqu'un aurait-il une idée ?

A voir également:

2 réponses

RoMa
 

Bonsoir,

et que donne

Function EnumName(t:semaine; n:byte) : String;

Cdt

1
Fredelem
 

Merci pour cette réponse.

Bien sur que ça marcherait, mais seulement avec le type semaine.

Je voudrais une solution qui marche avec tous les types...   

Mais finalement, je pense que c'est impossible. Si c'était possible, Delphi offrirait un mot plus simple que GetEnumName.

Dans le fond, ce que je recherche, c'est un type de type, c'est trop demander. Je laisse tomber.

0
RoMa
 

En effet, il n'y a pas de type générique en Pascal/Delphi

0