Kami1357
Messages postés36Date d'inscriptionsamedi 21 juin 2003StatutMembreDernière intervention11 février 2005
-
8 févr. 2005 à 20:58
Kami1357
Messages postés36Date d'inscriptionsamedi 21 juin 2003StatutMembreDernière intervention11 février 2005
-
8 févr. 2005 à 23:19
voila je suis en train de créer un menu mais problème ça ne marche pas !
c'est je veux que le fait d'appuyer sur Z active une varible ( 1 ) et
lorsque l'on appuie sur S cette variable prend la valeur (0), et
lorsque l'on appuie sur "entree" en fontion de la valeur de la variable
on effectue telle ou telle action.... voilà le code :
Private Sub Form_KeyPress(KeyAscii As Integer)
Dim oki As Variant
oki = 1
'HAUT
If KeyAscii = 122 Then
Set ok.Picture = LoadPicture(App.Path & "\images\newON.jpg")
Set quitter.Picture = LoadPicture(App.Path & "\images\quitterOFF.jpg")
oki = 1
End If
'BAS
If KeyAscii = 115 Then
Set ok.Picture = LoadPicture(App.Path & "\images\newOFF.jpg")
Set quitter.Picture = LoadPicture(App.Path & "\images\quitterON.jpg")
MadM@tt
Messages postés2167Date d'inscriptionmardi 11 novembre 2003StatutMembreDernière intervention16 juillet 20091 8 févr. 2005 à 21:54
G trouvé ce qui va pas je crois...
SAche que tout ce code est dans l'évenement Form_KeyPress(KeyAscii As Integer)
Donc ce code s'éxecute quand tu appui sur une touche numérotée KeyAscii
Or tu es d'accord que KeyAscii ne peut pas en meme temps etre égale à 122 ou 115 et en meme temps à 13 (pour appuyer sur entrée) dans le meme évenement... ou alor il faut que tu appui en meme temps sur les fleches haut ou bas et sur entrée...
donc déjà tu peux etre sur ke ça ne marchera pas, exemple :
tu appui sur BAS --> oki se déclare et se met à 0 puis l'évenement est terminé car tu n'appui pas sur entrée
ensuite tu appui sur ENTREE --> oki ne va pas garder sa valeur, il va ertre redéclarée car l'événement précédent à été terminé (dc variables internes effacées) et le nouveau oki est déclaré dans le nouvel évenement... donc ta variable oki sera obligé à 1 car c sa valeur initiale. Et donc tu aura la partie suivante qui va s'éxecuter :If KeyAscii 13 And oki 1 Then
Form1.Hide
Form2.Show
End If
Alors je ne te garantie rien la je n'ai pas trop le temps de t'aider, mais essaye de déclarer OKI dans la partie générale de ta form pour qu'elle conserve toujours sa valeur précédente, et supprime les lignes :
Dim oki As Variant
oki = 1
et oki d'abord déclare le en type LONG au lieu de VARIANT c'est mieux
le5ejumeau
Messages postés130Date d'inscriptionmardi 11 mars 2003StatutMembreDernière intervention 9 juillet 2009 8 févr. 2005 à 22:14
essayes ce code je pense que c'est ce que tu chrerchais :
_______________________________________________________________________
Public Const ToucheHaut = &H26 'Touche Haut en "
Public Const ToucheBas = &H28 'Touche bas en "
Public Const Entree = &HD 'touche Entree "
Public Const Echap = &H1B 'touche Echap en " _______________________________________________________________________
Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
Select Case KeyCode
Case Is = ToucheBas
If L = 1 Then
Jouer.ForeColor = &HFFFFFF
Options.ForeColor = &H80FF&
L = 2
Else
If L = 2 Then
Options.ForeColor = &HFFFFFF
Classement.ForeColor = &H80FF&
L = 3
Else
If L = 3 Then
Classement.ForeColor = &HFFFFFF
Quitter.ForeColor = &H80FF&
L = 4
Else
If L = 4 Then
Quitter.ForeColor = &HFFFFFF
Jouer.ForeColor = &H80FF&
L = 1
End If
End If
End If
End If
Case Is = ToucheHaut
If L = 1 Then
Jouer.ForeColor = &HFFFFFF
Quitter.ForeColor = &H80FF&
L = 4
Else
If L = 4 Then
Quitter.ForeColor = &HFFFFFF
Classement.ForeColor = &H80FF&
L = 3
Else
If L = 3 Then
Classement.ForeColor = &HFFFFFF
Options.ForeColor = &H80FF&
L = 2
Else
If L = 2 Then
Options.ForeColor = &HFFFFFF
Jouer.ForeColor = &H80FF&
L = 1
End If
End If
End If
End If
Case Is = Echap
End Case Is Entree And L 1
Unload Me
mets ce que tu veux faire Case Is Entree And L 2
Unload Me
mets ce que tu veux faire Case Is Entree And L 3
Unload Me
mets ce que tu veux faire Case Is Entree And L 4
End
End Select
End Sub
_______________________________________________________________________