IdentifiantMot de passe
Loading...
Mot de passe oubli� ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les r�ponses en temps r�el, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++Builder Discussion :

probl�me test de la zone d'�dition , c++ builder


Sujet :

C++Builder

  1. #1
    Membre averti
    Inscrit en
    Avril 2009
    Messages
    40
    D�tails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 40
    Par d�faut probl�me test de la zone d'�dition , c++ builder
    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 ...

  2. #2
    Membre �m�rite
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    573
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 573
    Par d�faut
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
     
     
     if ( EuroZone->Text.Length() > 0 ) {  conversion }
    Peut etre faut il traiter le fait que l edit puisse etre vide

  3. #3
    Membre averti
    Inscrit en
    Avril 2009
    Messages
    40
    D�tails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 40
    Par d�faut j'ai essay� mais sans succ�s !
    j'essay d'arranger avec votre proposition en ajoutant la ligne suivante :
    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
     
     && (DinarZone->Text.Length()!=0 || EuroZone->Text.Length() !=0)
     // le résultat : 
    void __fastcall TForm1::ZoneKeyPress(TObject *Sender, char &Key)
    {
     if
      (
       (Key < 48 || Key > 57)
       && Key != VK_BACK
       && Key != VK_DELETE
       && Key != DecimalSeparator
       && (DinarZone->Text.Length()!=0 || EuroZone->Text.Length() !=0)
      )
      Key = 0;
    }
    mais j'ai tjr la meme erreur , est-je bien fais ??

  4. #4
    Membre averti
    Inscrit en
    Avril 2009
    Messages
    40
    D�tails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 40
    Par d�faut c'est bon , c'est r�gl� !!!
    merci bcp , le probl�me vient d��tre r�gl� ,
    il fallait justement ajout� la condition mais dans try
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
     
    if ( EuroZone->Text.Length() > 0 )
    valeur = StrToFloat(EuroZone->Text);
    else
    valeur = 0;
    merci encore

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. R�ponses: 1
    Dernier message: 19/01/2006, 17h54
  2. [Tableaux] Probl�me test script
    Par masseur dans le forum Langage
    R�ponses: 6
    Dernier message: 03/12/2005, 18h48
  3. Probl�me d'insertion dans zone de texte
    Par roots_man dans le forum G�n�ral JavaScript
    R�ponses: 3
    Dernier message: 06/06/2005, 11h21
  4. Passer de la zone d'�dition vers une instruction sql
    Par tripper.dim dans le forum C++Builder
    R�ponses: 2
    Dernier message: 27/11/2002, 14h44

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo