bonjour à tous , comme je l'ai dis hier ,je débute avec c++ builder , et j'ai essayé pour commencer avec l'aide d'un tuto de faire un petit convertisseur Euro-Dinar , en prenant 1 e = 135 Da , bref , l'applic fait la bonne conversion , mais quand j'efface la valeur tapé, je me retrouve avec une erreur et je pense que c'est à cause du StrToFloat mais je n'en suis pas sûr , voila le bout de code qui traite ce problème :
la video de mon pb :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38 __fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner) { DecimalSeparator='.'; } //--------------------------------------------------------------------------- void __fastcall TForm1::ZoneKeyPress(TObject *Sender, char &Key) { if ((Key < 48 || Key > 57) && Key != VK_BACK && Key != VK_DELETE && Key != DecimalSeparator) Key = 0; } //--------------------------------------------------------------------------- void __fastcall TForm1::DinarZoneChange(TObject *Sender) { double valeur = 0 ; try { // l'exception sera déclancher si le contenue de la zone est vide valeur = StrToFloat(DinarZone->Text) ; } catch (...) { // On ne fait rien, c'est le but recherché } valeur /= 135; // On supprime la gestion de l'événement OnChange pour la // zone d'édition cible EuroZone->OnChange = 0; EuroZone->Text = EuroZone->Text.FloatToStrF(valeur, AnsiString::sffFixed, 15, 2); // On restaure la gestion de l'événement OnChange EuroZone->OnChange = EuroZoneChange; }
[ame]http://www.youtube.com/watch?v=0AK3P39DyLA[/ame],
merci pour vos suggestions et remarques ...
Partager