Touches clavier

Shivan0910 Messages postés 149 Date d'inscription mardi 7 janvier 2003 Statut Membre Dernière intervention 24 novembre 2010 - 14 janv. 2003 à 13:31
Shivan0910 Messages postés 149 Date d'inscription mardi 7 janvier 2003 Statut Membre Dernière intervention 24 novembre 2010 - 15 janv. 2003 à 22:22
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

cs_PROGRAMMIX Messages postés 1133 Date d'inscription mercredi 2 octobre 2002 Statut Membre Dernière intervention 24 juillet 2011 3
15 janv. 2003 à 20:56
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é.
0
Shivan0910 Messages postés 149 Date d'inscription mardi 7 janvier 2003 Statut Membre Dernière intervention 24 novembre 2010 2
15 janv. 2003 à 22:22
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...
0
Rejoignez-nous