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

wxWidgets Discussion :

un wxtextCtrl qui accepte que des chiffres


Sujet :

wxWidgets

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 5
    Points : 3
    Points
    3
    Par défaut un wxtextCtrl qui accepte que des chiffres
    bonjour a tous
    j'aimerai savoir si quelqu'un a deja fai un wxtextCtrl qui n'accepte que des chiffres une genre de calculette.
    J'ai cherche comme un fou mais je ne trouve pas, jpense mm que c est impossible a faire...
    si quelqu'un l'a deja fais qu'il me le fasse savoir svp

  2. #2
    Expert éminent
    Avatar de PRomu@ld
    Homme Profil pro
    Ingénieur de Recherche
    Inscrit en
    Avril 2005
    Messages
    4 155
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Ingénieur de Recherche
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2005
    Messages : 4 155
    Points : 6 486
    Points
    6 486
    Par défaut
    Il faut que tu utilises un masque de saisie, comme c'est indiqué dans le wiki :

    http://www.wxwidgets.org/wiki/index....kinds_of_input

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 5
    Points : 3
    Points
    3
    Par défaut
    merci d'avoir repondu et merci pour le lien mais jcapte pas trop comment on utilise un masque de saisie
    puis dans le code ya plusieur methode qui n existe pas comme
    Freez();
    ScrollLines( lines + 1 );
    GetLastPosition()
    Thaw();

    aucune info dessu
    http://www.wxwidgets.org/manuals/2.6...rlshowposition

  4. #4
    Candidat au Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 5
    Points : 3
    Points
    3
    Par défaut
    c est pas possible de faire un wxtextctrl de 2 ligne et de trié les chiffre et le lettre?
    genre le chiffre en premiere ligne et les lettre en 2nd mais en affichant juste la premiere ligne histoir que le seconde soi caché et qu'on ne voi pas les caracteres entré

  5. #5
    Membre régulier
    Inscrit en
    Septembre 2002
    Messages
    200
    Détails du profil
    Informations forums :
    Inscription : Septembre 2002
    Messages : 200
    Points : 120
    Points
    120
    Par défaut
    NOn en fait tu t'es planté quand tu as regardé le lien de PRomuald. Il parlait du paragraphe " only allowing certain kinds of input" et non "Scrolling" !! Mais bon, je trouve pas ce paragraphe très interessant de toutes facons.

    Bref, il faudrait pour faire ton truc que tu surcharges l"evenement EVT_KEY_DOWN en lui passant une fonction (nommée, au hasard, OnChar !). Et cette fonction se charge de filtrer ce qui est entré au clavier pour ne retenir que les chiffres (j'ai repris ce code de la doc wxWidgets que je t'encourage à lire):
    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
     
    void MyTextCtrl::OnChar(wxKeyEvent& event)
    {
        // Only numerical chars
        if ( !isalpha( event.KeyCode() ) )
        {
           // key code is within legal range. we call event.Skip() so the
           // event can be processed either in the base wxWidgets class
           // or the native control.
     
           event.Skip();
        }
        else
        {
           // illegal key hit. we don't call event.Skip() so the
           // event is not processed anywhere else.
     
           // Little sound to notice the error
           wxBell();
        }
    }
    Donc, la table d'évenement de ton objet devra etre declarée pour accepter la fonction ci dessus :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    BEGIN_EVENT_TABLE( MyTextCtrl, wxTextCtrl )
        EVT_KEY_DOWN( MyTextCtrl::OnChar)
    END_EVENT_TABLE()
    Avec bien sur MyTextCtrl ton objet de texte hérité du wxTextCtrl.

    Voila, bon courage.

    A+

    Alex.

  6. #6
    Rédacteur

    Avatar de Davidbrcz
    Homme Profil pro
    Ing Supaéro - Doctorant ONERA
    Inscrit en
    Juin 2006
    Messages
    2 307
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ing Supaéro - Doctorant ONERA

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 307
    Points : 4 732
    Points
    4 732
    Par défaut
    Je up le topic pour dire que qu'avec Wx 2.8.X votre méthode ne marche pas.
    En effet isalpha, n'est plus qu'une méthode interne de WxWidgets (source : http://lists.wxwidgets.org/archive/w.../msg12654.html )
    Est ce quelqu'un aurait une méthode de secours ?
    "Never use brute force in fighting an exponential." (Andrei Alexandrescu)

    Mes articles dont Conseils divers sur le C++
    Une très bonne doc sur le C++ (en) Why linux is better (fr)

  7. #7
    Expert éminent
    Avatar de PRomu@ld
    Homme Profil pro
    Ingénieur de Recherche
    Inscrit en
    Avril 2005
    Messages
    4 155
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Ingénieur de Recherche
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2005
    Messages : 4 155
    Points : 6 486
    Points
    6 486
    Par défaut
    Tu as regardé ta source, elle date de 2002 ...

  8. #8
    Rédacteur

    Avatar de Davidbrcz
    Homme Profil pro
    Ing Supaéro - Doctorant ONERA
    Inscrit en
    Juin 2006
    Messages
    2 307
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ing Supaéro - Doctorant ONERA

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 307
    Points : 4 732
    Points
    4 732
    Par défaut
    Ca change quoi ?
    Si la source date de 2002 et vu que je ne trouve pas cette fonction en 2007 , je me permet de penser que ca n'a pas changé.
    "Never use brute force in fighting an exponential." (Andrei Alexandrescu)

    Mes articles dont Conseils divers sur le C++
    Une très bonne doc sur le C++ (en) Why linux is better (fr)

  9. #9
    Expert éminent
    Avatar de PRomu@ld
    Homme Profil pro
    Ingénieur de Recherche
    Inscrit en
    Avril 2005
    Messages
    4 155
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Ingénieur de Recherche
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2005
    Messages : 4 155
    Points : 6 486
    Points
    6 486
    Par défaut
    Tu as écris ceci :

    En effet isalpha, n'est plus qu'une méthode interne de WxWidgets
    On peut donc s'attendre à ce que l'erreur vienne de là, or si la discussion date de 2002, et la version 2.6 est plus récente, il y a de fortes chances pour que la fonction isalpha n'existe pas dans cette version.

    Le problème n'est peut-être pas à chercher de ce coté là.

    As-tu exactement utilisé le code de ce thread ?

  10. #10
    Rédacteur

    Avatar de Davidbrcz
    Homme Profil pro
    Ing Supaéro - Doctorant ONERA
    Inscrit en
    Juin 2006
    Messages
    2 307
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ing Supaéro - Doctorant ONERA

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 307
    Points : 4 732
    Points
    4 732
    Par défaut
    J'utilise Wx 2.8.
    J'ai utilsé ce code , le else en moins.
    "Never use brute force in fighting an exponential." (Andrei Alexandrescu)

    Mes articles dont Conseils divers sur le C++
    Une très bonne doc sur le C++ (en) Why linux is better (fr)

Discussions similaires

  1. Réponses: 2
    Dernier message: 12/12/2008, 07h19
  2. accepter que des chiffres
    Par jbggg dans le forum Macros et VBA Excel
    Réponses: 16
    Dernier message: 31/05/2008, 01h41
  3. Réponses: 1
    Dernier message: 18/04/2007, 13h39
  4. forcer un TextField à n'accepter que des chiffres
    Par intik dans le forum AWT/Swing
    Réponses: 1
    Dernier message: 01/02/2007, 15h43
  5. un input qui accepte que les chiffres ?
    Par VerrNum dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 27/03/2006, 13h28

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