Menu

Résolu
Kami1357 Messages postés 36 Date d'inscription samedi 21 juin 2003 Statut Membre Dernière intervention 11 février 2005 - 8 févr. 2005 à 20:58
Kami1357 Messages postés 36 Date d'inscription samedi 21 juin 2003 Statut Membre Dernière intervention 11 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")

oki = 0

End If







If KeyAscii 13 And oki 0 Then

End

End If



If KeyAscii 13 And oki 1 Then

Form1.Hide

Form2.Show

End If





End Sub







Voilà.. en espérant une aide !

MERCI ! ;) ;)

3 réponses

Kami1357 Messages postés 36 Date d'inscription samedi 21 juin 2003 Statut Membre Dernière intervention 11 février 2005
8 févr. 2005 à 23:19
Merci Madmatt ca marche super !!!!!!

merci a toi aussi le 5e jumeau ton code pourra bien me servir ;)



allé ++++ et encore merci !
3
MadM@tt Messages postés 2167 Date d'inscription mardi 11 novembre 2003 Statut Membre Dernière intervention 16 juillet 2009 1
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

voilou, essaye si t'y arrive pas dis le moi
a+


Ciao
MadMatt
0
le5ejumeau Messages postés 130 Date d'inscription mardi 11 mars 2003 Statut Membre Derniè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
_______________________________________________________________________
0
Rejoignez-nous