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

Interfaces Graphiques Discussion :

Edittext numérique et dynamique


Sujet :

Interfaces Graphiques

  1. #1
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2013
    Messages
    62
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2013
    Messages : 62
    Points : 61
    Points
    61
    Par défaut Edittext numérique et dynamique
    Bonjour,
    Je souhaiterai contraindre l'utilisateur de mon GUI à entrer des valeurs numériques dans mes EditText et cela dynamiquement. Ce que je veux dire par dynamiquement peut se résumer par les deux conditions suivantes :
    Si l'utilisateur entre un chiffre alors l'editbox garde le chiffre dans le string
    Sinon l'editbox n'affiche pas la lettre écrite.

    Je ne sais pas si j'ai été clair mais je pense que le code vous illustrera ce que je veux faire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    function wave_build_first_KeyPressFcn(hObject, eventdata, handles)
    keypress = double(get(gcf,'CurrentCharacter'))
     
    if keypress ~= 48:57
    current_str = get(hObject,'String')
    set(hObject,'String',current_str(1:end-1))
    end
    Mon problème : ce code fonctionne très bien quand je mets un point d'arrêt dans mon fichier .m et que je l'exécute pas à pas, cependant rien ne se passe dès que j'écris directement sur mon edittext. Est-ce un problème de vitesse ?

    Merci d'avance

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    C'est un bug bien connu, le callback KeyPressFcn ne modifie pas la propriété 'String'. Il faut attendre la validation par la touche Entrée, ou dans ton cas la perte de focus pour que ce changement soit répercuté.
    Je t'invite à regarder cette discussion.

    if keypress ~= 48:57 : on préfèrera écrire if ~any(keypress == 48:57)Et attention que dans certains cas (appui sur Shift, Ctrl Alt,..) keypress peut être vide, donnant lieu à une erreur.

  3. #3
    Membre actif
    Homme Profil pro
    Inscrit en
    Avril 2013
    Messages
    189
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2013
    Messages : 189
    Points : 242
    Points
    242
    Par défaut
    salut,

    une solution consiste a faire presser la touche entrée par un robot JAVA.

    c'est pas très classe mais c'est rigolo

    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
     
    function wave_build_first_KeyPressFcn(hObject, eventdata, handles)
    keypressed = double(get(gcf,'CurrentCharacter'))
    pause(0.01)
    if ~isequal(eventdata.Key,'return')
        import java.awt.Robot;
        import java.awt.event.KeyEvent;
        robot=Robot;
        robot.keyPress(KeyEvent.VK_ENTER);
        pause on
        pause(0.01)
        robot.keyRelease(KeyEvent.VK_ENTER);
        pause(0.01)
        pause off
        % any other code you want to execute after keypress
    end
     
    A = keypressed ~= 48:57
     
     
    if all(keypressed ~= 48:57) && keypressed ~= 13
        current_str = get(hObject,'String')
        set(hObject,'String',current_str(1:end-1))
    end
    le seul soucis c'est que si tu tapes une lettre, le curseur vient se mettre qu début du edit text, et donc quand tu tapes ça rajoutera les trucs au début.

  4. #4
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2013
    Messages
    62
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2013
    Messages : 62
    Points : 61
    Points
    61
    Par défaut
    Merci à vous. Je ne connaissais pas l'astuce du robot Java (en même temps je n'y connais rien au langage Java ) mais très utile.


+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Définition dynamique des PINs numériques
    Par mormic dans le forum Arduino
    Réponses: 4
    Dernier message: 15/03/2015, 12h09
  2. [XL-2010] Ordonnée non numérique dans un Graphique Croisé Dynamique
    Par IrishLily dans le forum Excel
    Réponses: 10
    Dernier message: 02/07/2014, 09h03
  3. Ajout dynamique EditText, Button, textview
    Par Tetsuo30 dans le forum Composants graphiques
    Réponses: 2
    Dernier message: 16/01/2012, 20h32
  4. afficher un tableau dynamique numérique
    Par monlou dans le forum Langage
    Réponses: 16
    Dernier message: 18/07/2010, 16h10
  5. Tableau croisé dynamique Champs texte et numérique
    Par mooh91 dans le forum Requêtes et SQL.
    Réponses: 14
    Dernier message: 18/09/2006, 20h07

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