Shivan0910
Messages postés149Date d'inscriptionmardi 7 janvier 2003StatutMembreDernière intervention24 novembre 2010
-
14 janv. 2003 à 13:31
Shivan0910
Messages postés149Date d'inscriptionmardi 7 janvier 2003StatutMembreDernière intervention24 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 ?
cs_PROGRAMMIX
Messages postés1133Date d'inscriptionmercredi 2 octobre 2002StatutMembreDernière intervention24 juillet 20112 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é.
Shivan0910
Messages postés149Date d'inscriptionmardi 7 janvier 2003StatutMembreDernière intervention24 novembre 20103 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...