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

Caml Discussion :

touches clavier relachées


Sujet :

Caml

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 17
    Points : 7
    Points
    7
    Par défaut touches clavier relachées
    Bonjour,

    pour savoir si ma touche p est appuyée je fais:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    let e = wait_next_event[Poll; Key_pressed] in 
    if e.key='p'
    et ensuite je décide de faire plusieurs actions.

    Seulement, ces actions se répètent à chaque fois
    alors il faudrait que je puisse réinitialiser e.keypressed à la valeur false
    pour dire que ma touche n'est plus appuyée.

    j'ai cherché dans le manuel d'Ocaml et su internet mais je ne trouve rien.
    comment faire ?

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    832
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 832
    Points : 1 104
    Points
    1 104
    Par défaut
    Tu devrais utiliser plutôt key_pressed (unit -> bool) et read_key (unit -> char, bloque si key_pressed vaut false, en attendant qu'une touche soit enfoncée) si tu ne t'intéresses qu'au clavier. Je crois que le problème que tu observes vient de "Poll", qui retourne immédiatement même s'il ne s'est rien passé de nouveau.

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 17
    Points : 7
    Points
    7
    Par défaut
    en fait c'est dans un graphe ou je fais bouger plusieurs pions à la fois
    et quand je tape sur la touche p je dois suivre la trace du pion courrant,
    donc l'attente du nouvel évènement doit être non-bloquant et je dois utiliser Poll. Ensuite comme je ne sais pas réinitialiser l'évènement, la touche est toujours considérée comme appuyée donc j'ai la trace de tous mes points et pas seulement le point courant.

  4. #4
    Membre éprouvé
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    832
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 832
    Points : 1 104
    Points
    1 104
    Par défaut
    Pour que read_key () ne soit pas bloquant il suffit de vérifier que key_pressed () vaut true avant de demander read_key () (et sinon, d'attendre en continuant à gérer ton truc).

    Sinon, tu aurais un exemple de code pas trop long, montrant le comportement que tu observes, pour qu'on puisse tester et corriger directement ? C'est sans doute le plus simple.

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 17
    Points : 7
    Points
    7
    Par défaut
    ok merci, ça marche bien

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    if key_pressed() then
    		begin
    			match read_key() with
    			'p'->.....
    			|_->()
    		end;
    et le pbm s'est envolé!

    heureusement parce que j'aurai eu du mal à vous donner un morceau de code pas trop long.

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

Discussions similaires

  1. [Win32] Récupérer un appui touche clavier
    Par elsargento dans le forum MFC
    Réponses: 19
    Dernier message: 06/05/2006, 11h05
  2. Simuler un appui de touche clavier
    Par Floo dans le forum Assembleur
    Réponses: 5
    Dernier message: 03/12/2004, 17h04
  3. [JEditorPane]Captures des touches claviers
    Par splend_f dans le forum Agents de placement/Fenêtres
    Réponses: 5
    Dernier message: 17/05/2004, 14h57
  4. [Applet]simuler une touche clavier
    Par mat10000 dans le forum Interfaces Graphiques en Java
    Réponses: 19
    Dernier message: 12/12/2003, 16h23
  5. envoie de touche clavier
    Par psfox2001 dans le forum DirectX
    Réponses: 1
    Dernier message: 13/03/2003, 21h56

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