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

Fermé
fredelem Messages postés 136 Date d'inscription dimanche 29 octobre 2006 Statut Membre Dernière intervention 1 décembre 2022 - 1 déc. 2022 à 10:01
 RoMa - 9 déc. 2022 à 07:44

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

Bonsoir,

et que donne

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

Cdt

1

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

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

0