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 :

Interdire une frappe d'un caract�re non num�rique


Sujet :

C++Builder

Vue hybride

Message pr�c�dent Message pr�c�dent   Message suivant Message suivant
  1. #1
    Membre confirm�
    Inscrit en
    Novembre 2006
    Messages
    113
    D�tails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 113
    Par d�faut Interdire une frappe d'un caract�re non num�rique
    Bonjour,

    J'ai dans mon programme un champs o� l'utilisateur doit saisir le num�ro du mois (1,2,...etc). Je cherche donc � interdir la saisie des frappes non num�riques (a,b,:,...)

    L'id�e que j'ai est de faire le test on niveau de l'evenement OnKeyPress:

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    if(key=0 ||key=1....)
    {
        //ça passe
    }
    else
        champs.setFocus();
    mais �a ne donne rien

    SVP aidez moi


    balises [code] rajout�es par r0d. Merci d'y penser la prochaine fois.

  2. #2
    Expert �minent
    Avatar de M�dinoc
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 397
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 41
    Localisation : France

    Informations professionnelles :
    Activit� : D�veloppeur informatique
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 397
    Par d�faut
    Quelle plate-forme ?
    On est cens� la deviner ?
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parl� avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  3. #3
    Membre confirm�
    Inscrit en
    Novembre 2006
    Messages
    113
    D�tails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 113
    Par d�faut
    Je travaill avec C++ builder 6
    C'est cette pr�cision que vous cherchez?

  4. #4
    Expert �minent
    Avatar de M�dinoc
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 397
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 41
    Localisation : France

    Informations professionnelles :
    Activit� : D�veloppeur informatique
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 397
    Par d�faut
    Oui.
    Mais je ne pourrais pas t'aider, je ne connais pas.
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parl� avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  5. #5
    Membre Expert
    Avatar de kmaniche
    Inscrit en
    Janvier 2006
    Messages
    1 717
    D�tails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 717
    Par d�faut
    Bonjour,

    La r�ponse est dans la FAQ : voir ici

  6. #6
    Membre chevronn�
    Avatar de Altau
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    296
    D�tails du profil
    Informations personnelles :
    �ge : 68
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 296
    Par d�faut
    Il y a aussi le composant TSpinEdit qui peut r�pondre � ce besoin.

  7. #7
    Membre �prouv� Avatar de Flow_75
    Femme Profil pro
    Ing�nieure
    Inscrit en
    Mai 2005
    Messages
    1 100
    D�tails du profil
    Informations personnelles :
    Sexe : Femme
    �ge : 42
    Localisation : France, Paris (�le de France)

    Informations professionnelles :
    Activit� : Ing�nieure
    Secteur : Transports

    Informations forums :
    Inscription : Mai 2005
    Messages : 1 100
    Par d�faut
    sinon, regarde dans le coin de TMaskEdit....

  8. #8
    Membre chevronn� Avatar de Pierre Maurette
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    283
    D�tails du profil
    Informations personnelles :
    �ge : 69
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 283
    Par d�faut
    Bonjour,

    Vous pouvez associer un TUpDown � votre contr�le. Ou le remplacer par un TMaskEdit.
    Un code qui marche en utilisant OnKeyPress (il laisse passer les chiffres et le backspace):
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    void __fastcall TOptionsForm::FormKeyPress(TObject *Sender, char &Key)
    {
        if (ActiveControl->Name == "EdTaux")
        {
            if ((Key < '0' || Key > '9') && Key != '\b')
            {
    		Key = '\0';
            }
        }
    }
    Attention, dans ce bout, j'ai utilis� le OnKeyPress de la Form, en positionnant sa propri�t� KeyPreview � true.
    La comparaison � une cha�ne pour identifier l'origine n'est pas tr�s heureuse. J'en profite pour corriger mon code:
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    if (ActiveControl->Handle == EdTaux->Handle)
    Bonne journ�e

  9. #9
    Membre �m�rite
    Avatar de bandit boy
    Profil pro
    Inscrit en
    F�vrier 2006
    Messages
    916
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : F�vrier 2006
    Messages : 916
    Par d�faut
    Salut, tu as la solution dans les trucs et astuces.

  10. #10
    Membre confirm�
    Inscrit en
    Novembre 2006
    Messages
    113
    D�tails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 113
    Par d�faut
    Merci bcp

    effectivement je me suis inspir� de vos id�es et j'ai trouv� la solution

    Merci une autre fois

  11. #11
    Membre confirm� Avatar de fomazou
    Inscrit en
    Mars 2004
    Messages
    220
    D�tails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 220
    Par d�faut plus simple encore!!!!
    il existe des fonctions, IsNum�ric, IsAlpha.
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    void __fastcall TOptionsForm::FormKeyPress(TObject *Sender, char &Key)
    {
     if(IsNumerci(Key))
     {
        // traitement, du numéric a été tapé
     }
     else{
       // autre chose a été tapé
     }
    }
    NB; ds le cas c'set r�solu marque la discution comme �tant r�solu.

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

Discussions similaires

  1. [PL/SQL] Supprimer les caract�res non num�riques
    Par Oliveuh dans le forum PL/SQL
    R�ponses: 6
    Dernier message: 25/06/2015, 12h13
  2. R�ponses: 2
    Dernier message: 18/04/2012, 09h56
  3. R�ponses: 10
    Dernier message: 05/06/2008, 13h53
  4. [SQL-2005] Rechercher des caract�res non num�riques
    Par castaka dans le forum MS SQL Server
    R�ponses: 2
    Dernier message: 03/05/2007, 11h12
  5. R�ponses: 8
    Dernier message: 22/06/2005, 10h34

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