cs_jeanduri
Messages postés1Date d'inscriptionmardi 4 mars 2003StatutMembreDernière intervention20 décembre 2005
-
20 déc. 2005 à 12:32
cs_lacomm
Messages postés298Date d'inscriptionlundi 14 juin 2004StatutMembreDernière intervention 5 juillet 2013
-
22 déc. 2005 à 15:48
Bonjour,
Je fais une petite application de calcul, et lorsque l'utilisateur appuie sur la touche correcte, on passe au calcul suivant:7 + 2 9 (KeyAscii asc"9"), c'est OK
mais lorsqu'on a :7 + 3 10 (KeyAscii asc"1" puis KeyAscii = asc "0"), KO
cs_eldim
Messages postés956Date d'inscriptionlundi 30 mai 2005StatutMembreDernière intervention21 août 20141 20 déc. 2005 à 16:50
Bonjour,
Vérifie que tu n'ai pas un courcircuit événementiel
Du style Evénement Exit ou lostfocus ou encore Affectation de bouton par défaut au formulaire... etc
cs_lacomm
Messages postés298Date d'inscriptionlundi 14 juin 2004StatutMembreDernière intervention 5 juillet 20131 21 déc. 2005 à 09:25
Non, il n'y a pas tout ça et d'aileurs ca marche très bien avec les simples keypress, mais pourquoi, ca devrait marcher normalement ? voici la fonction:
Private sub reponse_keypress (KeyAscii as integer)
cs_eldim
Messages postés956Date d'inscriptionlundi 30 mai 2005StatutMembreDernière intervention21 août 20141 21 déc. 2005 à 09:42
c normal que ça ne marche qu'une seule fois....
au lieu de faire : if 1 then if 0
il faut que tu sauvegarde le 1 dans une variable puis
lorsque tu es de retour dans ta procedure vérifier si elle est égale à 1 en même temps que tu vérifies si on tape 0
bref lors d'un appui sur une touche tu passes dans la procedure
mais tu ne fais pas un appui sur une touche entre deux "if"
Vous n’avez pas trouvé la réponse que vous recherchez ?
cs_lacomm
Messages postés298Date d'inscriptionlundi 14 juin 2004StatutMembreDernière intervention 5 juillet 20131 21 déc. 2005 à 10:20
bon voilà, j'ai fait ceci
If KeyAscii Asc("1") Then vard 1 If KeyAscii Asc("0") Then vardu 1 If vard 1 And vardu 1 Then
resultat.Caption = "BRAVO !"
recommence.Visible = True
End If
ne marche pas
et puis ceci aussi ne marche pas
If KeyAscii Asc("1") Then vard 1
If KeyAscii = Asc("0") Then
If vard = 1 Then MsgBox "ok"
End If
cs_eldim
Messages postés956Date d'inscriptionlundi 30 mai 2005StatutMembreDernière intervention21 août 20141 21 déc. 2005 à 11:37
J'espère que ta variable "vard" est public.... ?
If KeyAscii = Asc("1") Then
vard = 1
ElseIf KeyAscii = Asc("0") Then
If vard = 1 Then MsgBox "ok"
End If
cs_lacomm
Messages postés298Date d'inscriptionlundi 14 juin 2004StatutMembreDernière intervention 5 juillet 20131 22 déc. 2005 à 14:08
ben j'ai essayé ceci mais ca ne marche pas: If KeyCode vbKey1 Or KeyCode vbKeyNumpad1 Then
vard = 1
End If If KeyCode vbKey0 Or KeyCode vbKeyNumpad0 Then
If vard = 1 Then
Dans certains posts, on parle de keylogger, de hook clavier, pourtant, dans le cas d'une inputbox, on entre du texte tant qu'on veut !?
cs_eldim
Messages postés956Date d'inscriptionlundi 30 mai 2005StatutMembreDernière intervention21 août 20141 22 déc. 2005 à 14:24
Au fait, j'ai oublié de te dire... lors d'un appuis clavier ton focus risque de changer...
si ton focus change ton événement généré par l'appui clavier sera celui d'un autre control...
Je ne sais pas comment est ton code mais si tu veux être sur de faire un test correctement crée un nouveau formulaire vide et met le code keydown à ton formulaire et fais le test
cs_lacomm
Messages postés298Date d'inscriptionlundi 14 juin 2004StatutMembreDernière intervention 5 juillet 20131 22 déc. 2005 à 15:09
voilàn j'ai refait un simple form avec un seul textbox et le code qui suit mais nada:
Private Sub reponse_KeyDown(KeyCode As Integer, shift As Integer)
Dim vard As Integer If KeyCode vbKey1 Or KeyCode vbKeyNumpad1 Then
MsgBox KeyCode OK
vard = 1
End If If KeyCode vbKey0 Or KeyCode vbKeyNumpad0 Then
MsgBox KeyCode OK
If vard = 1 Then
MsgBox "ok" KO
End If
End If
End Sub