Spinedit en décimal avec gestion des unités

Description

Bon, c'est un petit post vite fait, avec peu de commentaire.
J'ai développé ce composant pour un besoin personnel et il me semble quand même intéressant d'en faire profiter les autres.
Comme le nom l'indique, c'est un dérivé du SpinEdit standard mais en décimal et avec la gestion d'une éventuelle unité derrière.
quelques propriétés en plus ou changeante :

Value : valeur entrée par l'utilisateur mais convertie en valeur sans unité

Unites : Liste des unités possible avec la méthode de calcule pour obtenir la valeur correspondante sans unité.
chaque unité comporte un nom, un facteur de multiplication et un facteur de division, séparés par une barre verticale.
exemple : pc|254|1000|mm|1|1|cm|1|10 pour avoir toujours la propriété Value=nombre de millimètres.

Precision : nombre de chiffre significatif lors des conversions et de l'affichage
definit comme la fonction RoundTo de l'unité "Math"
-2=deux chiffres après la virgule
0=toujours des nombres entiers

UnitValue : valeur saisie par l'utilisateur (donc dans l'unité choisi par celui-ci)

CurrentUnit : unité courante définie par le programmeur pour lors de la saisie par l'utilisateur
=-1 si aucune unité
sinon, voir la propriété "Unites" pour la liste

DefaultUnit : unité par défaut qui doit être utilisé par le programme si l'utilisateur ne la précise pas.

Increment : nombre à ajouter ou soustraire lors que l'utilisateur utilise les boutons haut et bas du SpinEdit
C'est un nombre décimal donc, on peut régler un incrément de 0.001

MaxValue,Minvalue : limite ne pouvant pas être dépassé par l'utilisateur. Attention, ce sont des limites sans unité, donc appliqué à la propriété Value et non UnitValue.

Conclusion :


un petit exemple est fourni avec un mini système de conversion de pouces en centimètres...
Et la gestion de l'unité par défaut.

Essayer de taper directement les unités (mm,pc,cm ou px) après la valeur.

Codes Sources

A voir également

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.