BABUDROME
Messages postés151Date d'inscriptionlundi 16 janvier 2006StatutMembreDernière intervention19 avril 2016
-
2 nov. 2009 à 00:40
BABUDROME
Messages postés151Date d'inscriptionlundi 16 janvier 2006StatutMembreDernière intervention19 avril 2016
-
4 nov. 2009 à 00:26
Salut, Voici mon problème :
Avec Visaul Basic 6,
J'utilise la routine suivante pour laquelle la réaction est conforme aux besoins attendus
sauf pour les touches correspondant aux flèches ( vbKeyLeft, vbKeyRight, vbKeyUp et vbKeyDown ) où aucune réaction intervient.
Private Sub Form_KeyDown(KeyCode As Integer, shift As Integer)
Touche = "" ' Debug.Print KeyCode
Select Case KeyCode
Case vbKeyF1: CmdAide_Click: Exit Sub
Case vbKeyF2: If SwF2 Then DémoStop_Click Else SwF2 = True: DemDémo
Case vbKeyF3: CmdSon_Click
Case vbKeyF4: ImageExit_Click
Case vbKeyF12: RappelCmdSpéciales
Case vbKeyEscape: FinAide: If SWDémo Then DémoStop_Click
Case vbKeyLeft, 71, 100: Touche = "g" 'touche g ou 4 ou flèche "gauche"
Case vbKeyUp, 72, 104: Touche = "h" 'touche h ou 8 ou flèche "haut"
Case vbKeyRight, 68, 102: Touche = "d" 'touche d ou 6 ou flèche "droite"
Case vbKeyDown, 66, 98: Touche = "b" 'touche b ou 2 ou flèche "bas"
Case 51: Touche = Qot 'touche "
Case 54, 109: Touche = "-" 'touche -
Case 107, 187: Touche = "+" 'touche +
...
Il me semble que les appuis sur ces touches sont redirigés pour d'autres fonctionnalités, mais lesquelles ?
Quelqu'un peut-il m'expliquer cela ?
Avec les remerciements anticipés, Bab
PS : Il m'arrive fréquemment en création de nouveau programme, que les fonctions Chr(..) ne soient pas reconnues.
Un composant est-il spécifique à cette fonction ?
jmf0
Messages postés1566Date d'inscriptionmardi 26 décembre 2000StatutMembreDernière intervention 5 avril 20138 2 nov. 2009 à 07:23
Bonjour,
La question était :
Il me semble que les appuis sur ces touches sont redirigés pour d'autres fonctionnalités, mais lesquelles ?
Quelqu'un peut-il m'expliquer cela ?
La propriété KeyPreview étant supposée = True, bien sûr :
Les touches en cause ne sont pas redirigées mais interceptées par Windows.
Tu as oublié la touche Tab, d'ailleurs.
Leur interception se fait différemment selon que l'on est ou non dans une zone d'édition.
Hors édition : navigation entre les contrôles
En Edition : navigation dans la saisie
Voilà, de manière très générale (un inventaire exhaustif serait trop long).
A noter que la touche ENTER est égalmement interceptée dans certains cas (commandbutton poar exemple)
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 2 nov. 2009 à 01:00
Salut
Apprends à débuguer avec tes touches F8, F9 et F5 (voir menu Débogage)
Une fois le programme arrêté sur une ligne de ton programme, il te suffit de survoler les variables pour voir leur contenu.
S'il y a réorientation, tu le verras en exécutant pas à pas (F8)
Voir aussi l'utilisation de la propriété "KeyPreview" de la forme
Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés
Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
BABUDROME
Messages postés151Date d'inscriptionlundi 16 janvier 2006StatutMembreDernière intervention19 avril 2016 4 nov. 2009 à 00:26
Merci des tuyaux.
1) Le pas à pas n'intercepte pas les touches flèches ou Enter, donc aucun moyen de 'Debuger'.
Ces touches sont vraisemblable interceptées par Windows avant que VB la voit.
J'ai 2 programmes qui fonctionnent correctement (avec le même KeyDown et la détection des touches flèches) mais je ne vois pas la différence...
2) C'est possible pour le Pb. du Chr (j'ai eu le même avec Str) que ta solution soit bonne. Je la testerai dès que Pb. reviendra.