Bonjour, je souhaiterais savoir s'il est possible de manipuler les types énumérés d'un projet à la conception (design time) sous delphi 6.
Mon problème en détail :
J'ai développé un composant TListeDeChoix qui s'apparente à une combobox :
il contient entre autres propriétés une liste de chaînes (la liste des choix proposés), et un entier "value" qui indique le choix sélectionné.
Quand j'utilise ce composant dans un projet, je définis un type énuméré associé au TListeDeChoix, afin d'écrire du code dans cet esprit :
1 2 3 4 5 6 7 8
|
type TChoix = (Choix1, Choix2, Choix3);
[...]
case TChoix(maListeDeChoix.value) of
Choix1: [...];
Choix2: [...];
Choix3: [...];
end; |
Cela fonctionne très bien, mais pour des raisons un peu longues à exposer ici, j'aimerais beaucoup pourvoir "indiquer" au composant TListeDeChoix quel est le type énuméré auquel il est associé (pour qu'il récupère les chaînes 'Choix1', 'Choix2' et 'Choix3'.
Evidemment, ce type énuméré n'est pas un composant, donc je ne peux pas mettre une propriété qui ressemble à ça :
property TypeEnumAssocie : PTypeInfo read FTypeEnumAssocie write FTypeEnumAsscie;
J'ai pensé à mettre une propriété de type string, ou je "taperais manuellement" le nom du type énuméré, et à récupérer les infos du type avec TypeInfo, mais je ne trouve pas de fonction qui accepterait en paramètre la chaîne 'TChoix' au lieu de l'identifiant TChoix (comme avec getClass...).
Et de toute façon, si cette fonction existe, je ne suis pas sûr que les infos de type à récupérer avec TypeInfo soient disponibles à la conception...
Cependant, si j'y arrivait à l'exécution ce serait déjà pas mal !
Si quelqu'un connait une solution, ou un moyen détourné, je suis preneur !
Merci.
Partager