[VB5] vbKey....

Résolu
cs_JLB59 Messages postés 140 Date d'inscription jeudi 21 septembre 2000 Statut Membre Dernière intervention 16 août 2012 - 26 avril 2006 à 16:27
cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 - 27 avril 2006 à 11:55
Bonjour à tous,

Qq pourrait me donner la bonne syntaxe de la commande "vbKey1" par exemple.

Je demande ça parce que je voudrais mettre cette cmd dans une procédure :
Private Sub R1_Click()
vbKey1 = ........................   
If R1 Then
    ....
    ....    
End If
End Sub
mais je ne sais pas comment !...

R1 est un picturebox et quand c'est cliqué avec la souris, l'image s'affiche ailleurs.
J'ai donc pensé plus judicieux de pouvoir faire la même chose avec le pavé numérique.
Donc quand je tape "1", je voudrais que l'image s'affiche ailleurs, comme avec la souris quoi !

Maintenant si c'est pas possible avec un picturebox, je rajouterai un Label1 !!!!

Si vous avez compris ce que je veux faire, c'est sympa de m'aider ?

Merci d'avance.
 
A voir également:

9 réponses

cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
27 avril 2006 à 11:52
Les évènements KeyDown,... concerne l'ensemble du clavier et pas seulement le clavier numérique.

le mot clé vbKeyNumpad1 indique que tu filtre la touche "1" du pavé numérique,

tu aurais pu mettre vbKey1 pour la touche "1" du clavier normal.
vbKeyA pour la touche "A", etc ....

PS : Firefox 1.5, à mon avis le meilleur navigateur, en tout cas celui que j'utilise exclusivement.

3
cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
27 avril 2006 à 11:55
Et puis tu peux toujours faire Shift + NumPad1, ça fonctionne , c'est  l'équivalent de la touche 'Fin' lorsque numlock est activé, et de la touche '1' si numlock n'est pas activé

3
asecher Messages postés 262 Date d'inscription lundi 20 octobre 2003 Statut Membre Dernière intervention 27 avril 2007 1
26 avril 2006 à 16:48
Tu veux que ton image s'affiche quand on clique ou bien quand on appuie sur le 1 du pavé numérique ?

Pour les touches, on passe par les évènements OnKeyDown (et je crois qu'il faut déclarer une précéance du code vis-à-vis du système de la capture des touches par le formulaire avant le système)

A+

Alain 31
0
cs_JLB59 Messages postés 140 Date d'inscription jeudi 21 septembre 2000 Statut Membre Dernière intervention 16 août 2012
26 avril 2006 à 17:36
Merci de tes explications Asecher, mais ça me dit rien.
0

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

Posez votre question
cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
26 avril 2006 à 19:01
Moi non plus asecher, j'ai pas compris grand chose, en plus tu semble raisonner en .NET alors qu'il a préciser VB5.

Bref, JLB59, je vais essayer d'etre un peu plus clair

J'imagine que ta picture box s'appelle R1

Pour le click , il te faut
Private Sub R1_Click()
<strike>vbKey1 = ........................</strike>   à virer, c'est pas bon.

    Ici tu met le code pour ouvrir ton image
    ....    

End Sub

Pour la touche 1 du pavé numérique :

Private Sub Picture1_KeyDown(KeyCode As Integer, Shift As Integer)
if KeyCode= vbKeyNumpad1 then
    Ici tu met le code pour ouvrir l'image, le même que pour le click
    ou tu fait call R1_Click()
end if
End Sub

0
cs_JLB59 Messages postés 140 Date d'inscription jeudi 21 septembre 2000 Statut Membre Dernière intervention 16 août 2012
27 avril 2006 à 09:05
Moi non plus asecher, j'ai pas compris grand chose, en plus tu semble raisonner en .NET alors qu'il a préciser VB5.







Je ne sais pas si je raisonne en .NET mais toujours est-il que c'est bien du VB5 (pas de pépettes pour la version + moderne)
Toujours est-il Casy que tes explications sont TRES CLAIRES et ça m'aide bien.








Bref, JLB59, je vais essayer d'etre un peu plus clair







Très sympa de ta part.


J'imagine que ta picture box s'appelle R1







Exact !


Pour la touche 1 du pavé numérique :








Private Sub





Picture1



_KeyDown(KeyCode As Integer, Shift As Integer)






if KeyCode= vbKeyNumpad1 then




    Ici tu met le code pour ouvrir l'image, le même que pour le click




    ou tu fait call R1_Click





()









end if






End Sub





Je suppose que pour Picture1... tu voulais dire R1 ?
Pour infos, les () dans le Call R1... disparaissent ! c'est normal ça ?

Là où j'ai du mal à suivre, c'est Shift As Integer !!!
Je ne comprends pas son utilité, tu peux m'expliquer STP ? Merci d'avance.

Toujours est-il que ton exemple du Private Sub..., ça ne doit pas être exactement ça, parce que ça ne fonctionne pas, bien qu'il n'y ait aucune erreur.
Maintenant, c'est peut être moi qui ait mal manipulé  ! Là, c'est déjà plus sûr.

Mais est-ce que je suis obligé de mettre ce bout de code dans une autre procédure ?

Merci de ta réponse.



<?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" /?>
 








 
0
cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
27 avril 2006 à 09:47
Alors je vais esayer d'etre aussi clair.

le parametre Shift représente l'état des touches Shift (MAJ), Ctrl et Alt au moment de l'appuie sur ta touche.
= 1 : maj enfoncée
= 2 : ctrl enfoncée
= 4 : alt enfoncée
ainsi que toutes les combinaisons possible:
= 6 : ctrl + alt enfoncées.

Effectivement j'aurais du mettre R1 à la place de Picture1
Que les parenthèses disparaisent, c'est normal, c'est parce que tu n'as pas d'arguments à passer à la fonction.
Le mot call devant est même falcutatif. Ca fait un peu vieille école et même plus ou moins considéré comme obsolete. Mais moi je le met toujours, car comme ça, lorsque tu reprend ton programme quelques mois après, tu comprend de suite que c'est une procedure que tu appelle, ça me parait plus clair.

Mon code marche, il faut juste que ton image est le focus lorsque tu appuis sur la touche. Effectivement si c'est un bouton, ou un autre controle qui est sélectionné, c'est lui qui recevra l'évenement de la touche et non pas l'image.

Sinon il y a une solution, c'est que ce soit ta form qui intercepte ton evenement, quelque soit le controle ayant le focus. Dans ce cas tu met ton code dans le "TaForm_KeyDown". Et tu dois mettre la propriete KeyPreview de ta form à TRUE. Ainsi c'est ta form qui récupèrera en tout premier (tous) les évènements des touches.
Une fois que tu as traiter ton cas particulier, si tu ne veux pas que le controle qui a le focus récupère à son tour l'évènement, tu met  keycode à 0 avant de sortir de ta fonction TaForm_KeyDown.

Ca fait un peu roman, mais j'espère que ça t'aideras.
 

0
cs_JLB59 Messages postés 140 Date d'inscription jeudi 21 septembre 2000 Statut Membre Dernière intervention 16 août 2012
27 avril 2006 à 11:38
Ca fait un peu roman, mais j'espère que ça t'aideras.

Un peu que ça m'aide !

Je n'aurais pas su me dépatouiller de ce prb sans ton aide.

De plus, tes explications sont claires et précises, et ça, c'est parfait ! (pas comme certains...)

Tu parles de "vieille école", comme je ne suis pas un "pro" de VB, mettre le plus possible d'explications (que je fais toujours) dans les prg et mettre des fonctions "complètes" dans les procédures est, je pense, le meilleur moyen de s'en sortir.

Quoiqu'il en soit, si le code marche chez toi, y a pas de raisons ! J'ai dû mal placé ce qu'il fallait.


En passant et pendant que j'y suis, pour la cmd "Shift" (MAJ et min), cela ne fait par partie du pavé numérique, alors pourquoi la mettre puisqu'il n'est pas concerné ????
A moins de ce servir des touches alphanum, dans ce cas, c'est juste.

Bref, je te remercie vivement de ton aide et si je rencontre d'autres prb, je saurai où m'adresser (si tu le veux bien !).
0
cs_JLB59 Messages postés 140 Date d'inscription jeudi 21 septembre 2000 Statut Membre Dernière intervention 16 août 2012
27 avril 2006 à 11:44
Je refais le texte par qu'avec Netscape (que je viens de mettre), c'est pas la joie.
Tu y verras un peu plus claire !







Ca fait un peu roman, mais j'espère que ça t'aideras.




Un peu que ça m'aide !

Je n'aurais pas su me dépatouiller de ce prb sans ton aide.

De plus, tes explications sont claires et précises, et ça, c'est parfait ! (pas comme certains...).
 
Tu parles de "vieille école", comme je ne suis pas un "pro" de VB, mettre le plus possible d'explications (que je fais toujours) dans les prg et mettre des fonctions "complètes" dans les procédures est, je pense, le meilleur moyen de s'en sortir.

Quoiqu'il en soit, si le code marche chez toi, y a pas de raisons !
J'ai dû mal placé ce qu'il fallait.

En passant et pendant que j'y suis, pour la cmd "Shift" (MAJ et min), cela ne fait par partie du pavé numérique, alors pourquoi la mettre puisqu'il n'est pas concerné ????
A moins de ce servir des touches alphanum, dans ce cas, c'est juste.

Bref, je te remercie vivement de ton aide et si je rencontre d'autres prb, je saurai où m'adresser (si tu le veux bien !).
0
Rejoignez-nous