Gestion d'un type enuméré dans tlistbox

Soyez le premier à donner votre avis sur cette source.

Vue 3 037 fois - Téléchargée 626 fois

Description

Les Types énumérés sont bien utiles en tant que variables d'aiguillage. Ils simplifient le code mais doivent être l'objet de petits transcodages lors de l'interface visuel:

- Traduction en chaîne de caractère en tant qu'item d'une ListBox
- Inversement, Transcodage de l'item en type enuméré
- Comparaison d'un index de liste avec le rang dans la définition du type
énuméré en particulier lorsque les éléments de la Liste ne couvrent que
partiellement l'ensemble du type

J'en ai profité également pour faire une petite recapitulation simple de la mise en valeur de certaines lignes particulières des items d'une ListBox (voir image) résultat d'un choix d'un interval particulier de valeurs choisi dans l'ensemble du Type Enuméré

Source / Exemple :


Suivre les 4 étapes indiquées sur la Form pour faire les tests. 
Cliquez partout et voyez les effets.
La deuxième boite Liste affiche le résultat de la validation de vos sélections!

Conclusion :


Code très simple qui peut vous remettre en mémoire les problèmes d'indices du type énuméré...

Codes Sources

A voir également

Ajouter un commentaire

Commentaire

f0xi
Messages postés
4200
Date d'inscription
samedi 16 octobre 2004
Statut
Modérateur
Dernière intervention
2 janvier 2019
26 -
vas falloir réviser, même si l'approche reste bonne :

type
TQuelquechose = (qcA, qcB, qcC);

const
CQuelqueschoseNames : array[TQuelquechose] of string = ('A','B','C');

Est une approche déjà plus rapide pour éviter les longues prise de tête avec les case*of

Il n'y a pas de vraiment de limite à l'imbrication de type énumérés en index de tableau, exemple :

type
TEnumNamesType = (entOrd, entShort, entLong, entCustom);

TEnumeration = (eA, eB, eC);

const CEnumerationNames array[TEnumNamesType, TEnumeration] of string (
(ord(eA), 'A', 'ElementA', 'rouge'),
(ord(eB), 'B', 'ElementB', 'bleu'),
(ord(eC), 'C', 'ElementC', 'vert')
);


Il existes pleins d'autres trucs intéréssant à découvrir dans les unités de base de Delphi.

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.