Voici un programme qui gère les appuis court long et double appuis
Il s'agit d'un programme écrit sous Visual Studio Dot Net 2003 avec le SDK Pocket PC 2003.
Source / Exemple :
Voici l'algorithme simplifié du programme :
Evénement on détecte un message de relâchement de touche
Aucune touche pressée
Fin Evénement
Evénement on détecte un message de pression de touche
Si aucune touche n’est appuyée alors
Une touche est enfoncée
Si le Timer1 n’ est pas lancé
Lancement du timer1 // qui s’arrête au bout de 500ms
Sinon
Détection d’un double appuis
Fin Si
Fin Si
Fin Evénement
Evénement Timer1 arrêté
Si l’on a pas détecté un double appuis
On lance le Timer2 // qui s’arrête au bout de 300ms
Sinon
On ne détecte plus de double appuis
Fin Si
Fin Evénement
Evénement Timer2 arrêté
Si on a encore une touche pressée
Détection d’un appui long
Sinon
Détection d’un appuis court
Fin Si
Fin Evénement
Conclusion :
En gros la détection se base sur une échelle de temps dont la réaction du programme s'effectue au maximum à 800ms pour ce qui est de la détection des appuis court et long et d'un peut moins pour ce qui est du double appuis (dépend de la vitesse de l'utilisateur).
// autrement dis : dans tout les cas l'action à effectuer en fonction de l'appui recherché s'exécute au maximum en 0.8 sec
Le programme détecte un appuis court si l'appui dure moins de 800ms, un appui long si l'appui dure plus de 800ms et double appuis si l'on appuie deux fois une touche en moins de 500ms d'intervalle.
Les touches détectées sont les touche directionnelles du PAD du Pocket PC. Vous vous demanderez peut être pourquoi a chaque touche du pad directionnel j'ai deux 'case', eh bien tout simplement parce que chez moi l'émulateur utilise les valeurs des touches du pavé numérique alors qu'un vrai pocket pc utilise la valeur des touches directionnelles (située entre les touches alphanumériques et numériques). Alors une bonne leçon : ne vous fiez pas à ce que vous dit l'emulateur car des fois on est loin de la réalité ... testez aussi sur le vrai pocket. Je suis resté deux semaines sur un problème de projet à l'école à cause de ça!!
Voila..Si vous avez des remarques ou simplement me remercier parce sa vous a aider :p ...
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.