Perte de pédale pour le decimal avec "Tedit"

Résolu
Signaler
Messages postés
187
Date d'inscription
mercredi 24 mai 2006
Statut
Membre
Dernière intervention
28 août 2015
-
Messages postés
4202
Date d'inscription
samedi 16 octobre 2004
Statut
Modérateur
Dernière intervention
13 juin 2020
-
Bonjour!

Ma question est pratique.
Ce premier module de codes me permet aisement d'avoir dans mon "edit3" un resultat ayant un nombre decimal par exemple de .00

Procedure...
var leader : double;
begin
leader := combobox1.ItemIndex * combobox2.itemIndex;
edit3.text:= FloatToStrF(ffFixed,15,2);
end;

Bref, l'opération de multiplication entre les deux "combobox" marche bien et donne leur résultat dans l'"edit3".
Quel est mon problème?
Je n'arrive pas à faire cette même opération quand il s'agit des Tedits. Que faut-il mettre là ou se colorer en rouge s'il vous plait.

Procedure...
   var leader : double;
begin
   leader := edit1.???  *  edit2.???;
   edit3.text:= FloatToStrF(ffFixed,15,2);
end;

Merci,

Developper est une dimension pour moi.
Leader2000

7 réponses

Messages postés
3826
Date d'inscription
vendredi 23 juillet 2004
Statut
Modérateur
Dernière intervention
10 mai 2021
46
Salut,
Peut être :
Leader := StrToFloat(Edit1.Text) * StrToFloat(Edit2.Text);

 
@+
Cirec

<hr siz="" />
Messages postés
4202
Date d'inscription
samedi 16 octobre 2004
Statut
Modérateur
Dernière intervention
13 juin 2020
37
ItemIndex renvois l'index de l'item selectionné dans un objet liste (listbox, combobox)

TEdit ne fonctionnant pas avec des items, il est normal qu'il n'y ai pas de propriété ItemIndex.

j'en deduis (vive la divination dans l'interpretation des symboles nuageux) que tes combobox contienent des chiffres de 0 a n
et que la multiplication des index permet d'eviter une convertion texte > numerique.

donc si dans tes TEdit tu mets egalement des chiffres tu peu faire :

leader := StrToFloatDef(Edit1.text, 0) * StrToFloatDef(Edit2.text, 0);
edit3.text := format('%.2f',[leader]);

<hr size="2" width="100%" />
http://deefaze.gnomz.com
Messages postés
3826
Date d'inscription
vendredi 23 juillet 2004
Statut
Modérateur
Dernière intervention
10 mai 2021
46
ps :
l'opération que tu effectues avec les ComboBox "combobox1.ItemIndex * combobox2.itemIndex" ne porte pas sur les valeurs contenues dans les ComboBox mais sur les Index des Items

autrement dit si : ComboBox1 contient : 5; 8 ;10 (Index 0 5; Index 1 8; Index 2 = 10)
et
ComboBox2 contient : 2; 4; 6;

et en admettant que combobox1.ItemIndex = 1
et en admettant que combobox2.ItemIndex = 2


combobox1.ItemIndex * combobox2.itemIndex
est égale à : 1 * 2 et non 8 * 6 ce qui devrait être le résultat attendu !

 
@+
Cirec

<hr siz="" />
Messages postés
3826
Date d'inscription
vendredi 23 juillet 2004
Statut
Modérateur
Dernière intervention
10 mai 2021
46
Arf ... j'ai pas rafraîchi avant poster mon message ...
F0xi à été plus rapide que moi

 
@+
Cirec

<hr siz="" />
Messages postés
4202
Date d'inscription
samedi 16 octobre 2004
Statut
Modérateur
Dernière intervention
13 juin 2020
37
on s'auto-grill depuis tout a l'heure mon jeune ami :)

il faut rajouter egalement que ItemIndex est une valeur entiere,

donc entier * entier = entier
jamais un flottant.

pour multiplier les valeur contenus dans les combobox :

A := StrToFloatDef( ComboBox1.Items[ComboBox1.ItemIndex], 0);
B := StrToFloatDef( ComboBox2.Items[ComboBox2.ItemIndex], 0);
Edit3.Text := Format('%.2f',[A * B]); 

une difference entre Format et xxxToStr :

Moi je n'utilise que format, bien mal on en dise, car elle permet de changer le type de resultat plus facilement que de passer de IntToStr a FloatToStr en permanance, de plus elle permet beaucoup de choses que ces derniers ne permettent pas.

exemple :

Edit3.Text := format('A=%d // B=%d // A*B=%d // A/B=%f // A div B= %d // A mod B= %d',[A, B, A*B, A/B, A div B, A mod B]);

ce qui est bien pendant la conception pour afficher les valeurs alentours au calcul pour verifier qu'il n'y a pas d'erreur dans notre code ou un algorithme.
au final, quand tout vas bien, on peu remplacer Format par une fonction correspondante.

<hr size="2" width="100%" />
http://deefaze.gnomz.com
Messages postés
187
Date d'inscription
mercredi 24 mai 2006
Statut
Membre
Dernière intervention
28 août 2015

Dis donc,


Tout le monde a été gentil avec ces réponses. Vous m'aviez apporté assistance les gars.

Grand merci,

Developper est une dimension pour moi.
Leader2000
Messages postés
4202
Date d'inscription
samedi 16 octobre 2004
Statut
Modérateur
Dernière intervention
13 juin 2020
37
quand uen question est correctement posée et que l'on sens qu'il y a eu recherche mais blocage, alors on aide, ça fonctionne comme cela ici.

bon courage a toi pour la suite et n'oublis pas de consulter l'aide Delphi (même pour lire) c'est toujours utile.

<hr size="2" width="100%" />
http://deefaze.gnomz.com