anil16
Messages postés47Date d'inscriptionvendredi 15 février 2008StatutMembreDernière intervention15 février 2010
-
17 oct. 2009 à 22:54
anil16
Messages postés47Date d'inscriptionvendredi 15 février 2008StatutMembreDernière intervention15 février 2010
-
20 oct. 2009 à 00:31
Salut,
voici mon problème:
J'ai un edit qui affiche le 'montant total HT' (la somme d'une colonne d'un dbgrid de type currency)
dans un autre edit l'utilsateur doit saisir la taxe pour enfin affiché le totale TTC dans un troisième edit.
Le message d'erreur est le suivant:
....raised exception class EconvertError with message "26 400,00 DA0" is not a valid floating point value....
avec 26 400,00 DA montant total HT et 0 Taxe
Merci beaucoup.
ThWilliam
Messages postés418Date d'inscriptionmardi 3 janvier 2006StatutMembreDernière intervention26 novembre 20134 19 oct. 2009 à 21:15
Bonsoir Lina.
Si le texte de ton Edit est "26 400,00 DA" tu as alors :
- le séparateur de milliers qui est l'espace
- le séparateur de décimales qui est la virgule
- le symbole monétaire DA
Dans la fonction StrToFloat, le séparateur des milliers et le symboles monétaire ne sont pas admis dans la chaîne à convertir --> erreur de conversion. Seul est admis le séparateur de décimales.
Si tu tiens à afficher le format monétaire dans les edit, joue alors avec des variables qui mémorisent les valeurs. Exemple :
var
HT: currency;
HT:= 26400.0 (obtenu par ton grid)
EditHT.Text:= FloatToStrF(HT, ffCurrency, 15,2);
Evenement OnEnter de ton Edit hors taxe :
EditHT.Text:= FloatToStr(HT); // on entre en édition en ayant enlevé le format
Evénement OnExit de ton Edit Hors taxe :
HT:= StrToFloat(EditHT.Text);
EditHT.Text:= FloatToStrF(HT, ffCurrency, 15,2); // on réaffiche avec formatage
Pour éviter des erreurs provoquées par l'encodage dans l'edit, il faudrait jouer avec des blocs try...except
Mais je n'ai pas voulu compliquer.
Comme Cantador l'a dit, pour les infos qui ne peuvent pas être accessibles, n'utilise pas de TEdit ou alors met sa propriété readOnly = true.
anil16
Messages postés47Date d'inscriptionvendredi 15 février 2008StatutMembreDernière intervention15 février 2010 19 oct. 2009 à 18:05
Merci cantador, c'est une idée, pour cette partie je pourrais faire un code comme tu la dis, mais après j'ai deux autres edit un pour saisir la somme payée et l'autre pour afficher le sold donc ça revient au même problème
y a t il une solution pour ça
Merci encore
anil16
Messages postés47Date d'inscriptionvendredi 15 février 2008StatutMembreDernière intervention15 février 2010 19 oct. 2009 à 19:10
re salut!
Même pour calculer le total TTC par un code j'ai le même problème , le résultat ne s'affiche pas dans le edit et le message d'erreur est similaire au précédent
....raised exception class EconvertError with message "26 400,00 DA" is not a valid floating point value....