Problème edit exception EConvertError [Résolu]

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

Votre réponse

5 réponses

Meilleure réponse
cs_cantador 4996 Messages postés dimanche 26 février 2006Date d'inscription 27 mars 2018 Dernière intervention - 19 oct. 2009 à 16:32
3
Merci
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

Merci cs_cantador 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 92 internautes ce mois-ci

Commenter la réponse de cs_cantador
Meilleure réponse
ThWilliam 424 Messages postés mardi 3 janvier 2006Date d'inscription 26 novembre 2013 Dernière intervention - 19 oct. 2009 à 21:15
3
Merci
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

Merci ThWilliam 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 92 internautes ce mois-ci

Commenter la réponse de ThWilliam
anil16 47 Messages postés vendredi 15 février 2008Date d'inscription 15 février 2010 Dernière intervention - 19 oct. 2009 à 18:05
0
Merci
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
Commenter la réponse de anil16
anil16 47 Messages postés vendredi 15 février 2008Date d'inscription 15 février 2010 Dernière intervention - 19 oct. 2009 à 19:10
0
Merci
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
Commenter la réponse de anil16
anil16 47 Messages postés vendredi 15 février 2008Date d'inscription 15 février 2010 Dernière intervention - 20 oct. 2009 à 00:31
0
Merci
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
Commenter la réponse de anil16

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.