Problème edit exception EConvertError

Résolu
anil16 Messages postés 47 Date d'inscription vendredi 15 février 2008 Statut Membre Dernière intervention 15 février 2010 - 17 oct. 2009 à 22:54
anil16 Messages postés 47 Date d'inscription vendredi 15 février 2008 Statut Membre Dernière intervention 15 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.

5 réponses

cs_cantador Messages postés 4720 Date d'inscription dimanche 26 février 2006 Statut Modérateur Dernière intervention 31 juillet 2021 13
19 oct. 2009 à 16:32
bonjour,

affiché le totale TTC dans un troisième edit.
cette zone doit être calculé mais
pas accessible..

TTC = HT * (1 + tva/100)

mets un bout de code pour faciliter les échanges

cantador
3
ThWilliam Messages postés 418 Date d'inscription mardi 3 janvier 2006 Statut Membre Dernière intervention 26 novembre 2013 4
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.

A +
Thierry
3
anil16 Messages postés 47 Date d'inscription vendredi 15 février 2008 Statut Membre Dernière intervention 15 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
0
anil16 Messages postés 47 Date d'inscription vendredi 15 février 2008 Statut Membre Dernière intervention 15 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....


Voici mon code:
  Edit7.Text:= floattostr(strtofloat(Edit3.Text) *(1+17/100));


Merci pour votre aide
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
anil16 Messages postés 47 Date d'inscription vendredi 15 février 2008 Statut Membre Dernière intervention 15 février 2010
20 oct. 2009 à 00:31
Bonsoir Thierry,

Merci beaucoup, j'ai bien compris le problème grace à votre explication détaillée héé bein!! ce edit manque beaucoup de flexibilité!!!
Bonne nuit
0
Rejoignez-nous