Touches clavier

Messages postés
149
Date d'inscription
mardi 7 janvier 2003
Statut
Membre
Dernière intervention
24 novembre 2010
-
Messages postés
149
Date d'inscription
mardi 7 janvier 2003
Statut
Membre
Dernière intervention
24 novembre 2010
-
J'ai un petit soucis de gestion de clavier. J'explique :

Le prog que je développe (un jeu) utilise le KeyDown pour lancer une action ou une autre, mon problème c'est que quand l'action est en cours, si on tape sur une touche, des que l'action est terminée il enchaine de suite avec la touche tapée entre deux.

Moi ce que je voudrais, c'est des qu'une touche est appuyée, "bloquer" l'accès au clavier ou au moins "voir" qu'une touche a été appuyée et pouvoir l'annulée...

Peut-on faire ca ? Faut-il utiliser une fonction particulière qui vérifierai que d'autres touches ont été pressée après le lancement d'une action ?

Merci de votre aide...

2 réponses

Messages postés
1133
Date d'inscription
mercredi 2 octobre 2002
Statut
Membre
Dernière intervention
24 juillet 2011
3
Une suggestion :
1° Défini une variable publique de type Boolean ; appelons-la "Occupé";
2° Au départ de l'application, attribue False à cette variable.
3° Place dans le code du KeyDown une condition qui vérifie que l'action demandée n'est pas en cours, si tel est le cas sort :
If Occupé Then Exit Sub
4° Juste avant de lancer le code prévu par la frappe d'une touche, met la variable à True :
Occupé = True
Call LeResteDuCode
5° Place à la fin de l'action souhaitée, remet la variable à False :
DéroulementDuCode
Occupé = False

Ainsi, si tu frappes une seconde fois une touche alors que la première action n'est pas terminée, je pense qu'il s'arrêtera à la fin de l'action et en restera là.

Sinon, faudrait revoir la manière dont le code est découpé.
Messages postés
149
Date d'inscription
mardi 7 janvier 2003
Statut
Membre
Dernière intervention
24 novembre 2010
2
c une solution ke j'ai deja expérimenté après avoir réfléchi un peu au pb et ca n'avait pas marché... je reessayerai certainement, parce ke a priori, y'a pas de raison ke ca marche pas...
merci de ton aide en tout cas...