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 :
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;
}
la video de mon pb :
[ame]http://www.youtube.com/watch?v=0AK3P39DyLA[/ame],
merci pour vos suggestions et remarques ...