Probleme keydown [Résolu]

Signaler
Messages postés
141
Date d'inscription
lundi 3 octobre 2005
Statut
Membre
Dernière intervention
17 mai 2014
-
Messages postés
141
Date d'inscription
lundi 3 octobre 2005
Statut
Membre
Dernière intervention
17 mai 2014
-
Bonsoir,
Je suis en trin de crée un appli sous vb6 et j'ai un probleme avec keydown.
Je l'utilise dans une condition c'est à dire:

Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
If KeyCode = a And Shape1.Top >= 5400 And Shape1.Top <= 5880 Then
Shape1.Top = 1200
Timer1.Enabled = False
End If
End Sub


Le probleme est que cela ne marche pas. Ce que je veux dire par ce code (peu etre que je me suis trompé) c'est que si la valeur top de la shape 1 est comprise entre 5400 et 5880 et qu'en plus on appuis sur la touche "a" (pendant que la valeur est encore entre 5400 et 5880) alors on remet la shape à la valeur 1200 et on coupe le timer.

Seulement ça ne marche pas... Pourriez vous m'aider?
Merci =)

6 réponses

Messages postés
14727
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
29 septembre 2020
144
Bonjour,

Regardes, de tête, il devrait y avoir une propriété sur la form dont le nom approchant est : KeyPreview (ou similaire)

Mon site
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
70
Salut

Culie33 : As-tu lu toute la réponse de NHenry ?
Regarde de plus près le If

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)
Messages postés
141
Date d'inscription
lundi 3 octobre 2005
Statut
Membre
Dernière intervention
17 mai 2014

Finalement j'ai utiliser la fonction vbKey pour définir la touche et ça à marché =)

Merci pour votre aide
Messages postés
14727
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
29 septembre 2020
144
Bonjour,

TOUJOURS mettre "Option Explicit" en haut de tes modules/form de code.

Il te dirais : La variable a n'est pas déclarée

Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
If KeyCode = asc("a") And Shape1.Top >= 5400 And Shape1.Top <= 5880 Then
Shape1.Top = 1200
Timer1.Enabled = False
End If
End Sub


Mon site
Messages postés
141
Date d'inscription
lundi 3 octobre 2005
Statut
Membre
Dernière intervention
17 mai 2014

Oui merci, je l'ai mis le option explicit.
Parcontre ça ne marche pas quand meme, je pense que cela vien du fait que j'ai des boutons sur la form et que dés le depart ils sont selectionnés par défaut... Il y a pas un moyen d'eviter de lancer ce code par la form mais plutot par un shape qui est un cadre?
C'est a dire que si le shape1 est dans le shape 2 (le cadre) alors ça fait l'action?

Merci
Messages postés
141
Date d'inscription
lundi 3 octobre 2005
Statut
Membre
Dernière intervention
17 mai 2014

@Nhenri: merci pour ta réponse, j'ai bien trouvé la propriété keypreview qui était false. Je l'ai mise en true mais cela ne marche pas quand meme...

@jack: j'ai bien lu toute la réponse de Nhenri oui, j'ai remarqué le changement.

Si on remplace "a" par sa valeur ascii, cela n'arrangerai pas les choses?

merci pour vos réponses