Probleme keydown

Résolu
Utilisateur anonyme - 20 oct. 2010 à 21:57
 Utilisateur anonyme - 21 oct. 2010 à 01:29
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

NHenry Messages postés 15112 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 13 avril 2024 159
20 oct. 2010 à 23:56
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
3
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
20 oct. 2010 à 23:58
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)
3
Utilisateur anonyme
21 oct. 2010 à 01:29
Finalement j'ai utiliser la fonction vbKey pour définir la touche et ça à marché =)

Merci pour votre aide
3
NHenry Messages postés 15112 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 13 avril 2024 159
20 oct. 2010 à 23:21
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
0

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

Posez votre question
Utilisateur anonyme
20 oct. 2010 à 23:40
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
0
Utilisateur anonyme
21 oct. 2010 à 01:15
@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
0
Rejoignez-nous