cs_djtinou
Messages postés7Date d'inscriptiondimanche 3 février 2008StatutMembreDernière intervention24 mars 2010
-
24 mars 2010 à 15:07
f0xi
Messages postés4205Date d'inscriptionsamedi 16 octobre 2004StatutModérateurDernière intervention12 mars 2022
-
25 mars 2010 à 00:19
Bonjour j'ai un problème avec l'arrondissement.
Voilà je souhaite deux choses.
La première c'est de trouver le code le plus optimisé pour résoudre mon problème, moins il
y a de ligne, plus c'est rapide.
La deuxième c'est mon problème: c'est a dire que l'utilisateur pourra rentrer comme chiffre
soit 0,1,2,3,4,5,6,7,8,9. Quand il rentre le chiffre 0 ou 1 ou 2 ou 8 ou 9 je voudrais
que ca me retourne 0 et si c' est un 3 ou 4 ou 5 ou 6 ou 7 je voudrais que ca me retourne un 5.
Merci d'avance pour vos réponse j'espère avoir été clair dans mes explication :).
JulioDelphi
Messages postés2226Date d'inscriptiondimanche 5 octobre 2003StatutMembreDernière intervention18 novembre 201014 24 mars 2010 à 16:54
Bonjour,
(on dit un Arrondi pas un Arrondissement)
Utilise un TSpinEdit avec la valeur max à 9 pour être sûr que l'utilisateur n'entre pas un mauvais chiffre ou des lettres (comme ça 0 ligne de code) et si tu utilises un TEdit, alors penche toi sur le OnKeyPress qui interdit les autres touches que les chiffres, puis voici une fonction d'une ligne :
function RetourArrondi(const Chiffre: Integer): Integer;
begin
if Chiffre in [0,1,2,8,9] then Result:= 0 else Result:= 5;
end;
f0xi
Messages postés4205Date d'inscriptionsamedi 16 octobre 2004StatutModérateurDernière intervention12 mars 202235 25 mars 2010 à 00:19
c'est pas un arrondi c'est une convertion :
// 3 est le pivot
if V < 3 then
result := 0
else
result := 5;
ou par table de convertion :
const
CnvT : array[0..9] of integer = (0,0,0,5,5,5,5,5,5,5);
begin
assert((V >= 0) and (V <=9), 'Error : Value range (0..9) out of limit '+IntToStr(V));
result := CnvT[V];
end;