Plusieur touche simultanement

Résolu
cs_bobo91 Messages postés 107 Date d'inscription dimanche 27 juin 2004 Statut Membre Dernière intervention 12 novembre 2006 - 10 août 2004 à 15:54
cs_bobo91 Messages postés 107 Date d'inscription dimanche 27 juin 2004 Statut Membre Dernière intervention 12 novembre 2006 - 11 août 2004 à 02:27
bonjour tous le monde.

j'aimerai savoir comment faire une instruction quand plusieur touche sont enfonce.
merci d'avance.
voila ce que je comptais faire:

Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
if keycode = vbkeyspace + vbkey left
INSTRUCTION
end if

5 réponses

cs_rene38 Messages postés 1858 Date d'inscription samedi 29 juin 2002 Statut Membre Dernière intervention 17 octobre 2013 11
11 août 2004 à 01:33
Bonsoir
"simultanément" ? Il faut être très fort : il y aura toujours un décalage ne serait-ce que de quelques microsecondes entre les deux frappes.
Voici ma proposition : un Timer (Timer1) sur la form ;

Option Explicit
Dim Gauche As Boolean, Espace As Boolean

Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
Timer1.Enabled = True
If KeyCode = vbKeyLeft Then
    'on a enfoncé la touche "Flèche Gauche"
    Gauche = True
    If Espace Then
        ' si "Espace" a déjà été enfoncée
        MsgBox "gagné !"
    End If
End If
If KeyCode = vbKeySpace Then
    'on a enfoncé la touche "Espace"
    Espace = True
    If Gauche Then
        MsgBox "Gagné !!!"
    End If
End If
End Sub

Private Sub Form_Load()
Timer1.Interval = 200
' délai maximal : 2/10 de seconde entre les 2 frappes
End Sub

Private Sub Timer1_Timer()
    Gauche = False ' Réinitialisation
    Espace = False ' si délai dépassé
End Sub
SkyRocKo Messages postés 174 Date d'inscription samedi 10 mai 2003 Statut Membre Dernière intervention 18 février 2006
10 août 2004 à 16:08
Salut !

Je n'ai pas VB sous la main mais essaye ceci :

Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)if KeyCode vbKeySpace and KeyCode vbKeyLeft then
INSTRUCTION
End If

Bonne continuation !
econs Messages postés 4030 Date d'inscription mardi 13 mai 2003 Statut Membre Dernière intervention 23 décembre 2008 25
10 août 2004 à 16:17
SkyRocKo > KeyCode ne peut pas valoir deux choses à la fois.

bobo91 > Voilà comment s'utilise la procédure Form_KeyDown :

Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
If KeyCode = vbKeyA Then
    Select Case Shift
        Case 1:
            MsgBox "Maj+A"
        Case 2:
            MsgBox "Ctrl+A"
        Case 3:
            MsgBox "Ctrl+Maj+A"
    End Select
End If
End Sub


Pour ton problème, il faut t'y prendre autrement. Comment ? ... je n'en sais rien. Je vais chercher.

Manu
cs_bobo91 Messages postés 107 Date d'inscription dimanche 27 juin 2004 Statut Membre Dernière intervention 12 novembre 2006
10 août 2004 à 17:49
bonjour et merci de votre aide.
si keycode ne fais q'une touche a la fois alors comment faire s'il vous plait merci beaucoup.
a bientot.

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_bobo91 Messages postés 107 Date d'inscription dimanche 27 juin 2004 Statut Membre Dernière intervention 12 novembre 2006
11 août 2004 à 02:27
merci rene38 c'est exactement ca que je voulais savoir
merci beaucoup.
et effectivement ce n'est pas des touches simultannées mais plutot une instruction a faire pour plusieur touche enfoncés.
ca merite d'etre exact c'est vrai tu as raison.
bonne continuation.
Rejoignez-nous