Même si la souris est un périphérique
d'entrée de prédilection, il arrive souvent qu'on désire
utiliser des touches pour effectuer certaines opérations.
C'est même parfois plus rapide. Cette fiche vous montre
comment les utiliser.
- Commencez par télécharger les fichiers suivants dans
votre répertoire: Ex_18xx.vbp,
E18_F1xx.frx et E18_F1xx.frm.
- Ouvrez le projet avec VisualBasic. Voici à quoi
ressemble la feuille de départ.

-
Il faut d'abord déclarer dans la section EXPLICIT
trois variables booléennes qui serviront à enregistrer
l'état des touches CTRL, ALT et MAJ.
'Déclaration des
variables booléennes
Private MajEtat As Boolean
Private CtrlEtat As Boolean
Private AltEtat As Boolean
-
On ajoute ensuite la
procédure principale, celle qui réagira en fonction de
l'enfoncement des touches vérifiées. Le code est
intégré dans l'événement KEYDOWN de la feuille.
Private Sub Form_KeyDown(KeyCode As Integer, Shift As
Integer)
'Initialisation des
variables en fonction de l'enfoncement des touches
MajEtat = (Shift And vbShiftMask) > 0
CtrlEtat = (Shift And vbCtrlMask) > 0
AltEtat = (Shift And vbAltMask) > 0
'Réaction attendue
en fonction de la valeur des variables
If CtrlEtat = "Vrai" Then 'Touche
CTRL
If IM_Seigneur.Visible = False Then
' Si l'image est visible, on la cache...
IM_Seigneur.Visible = True
Else
'sinon...
IM_Seigneur.Visible = False
'... on la montre
End If
End If
If MajEtat = "Vrai" Then 'Touche
MAJ
If ET_Legende.Visible = False Then
' Si la légende est visible, on
la cache...
ET_Legende.Visible = True
Else 'sinon...
ET_Legende.Visible = False
'... on la montre
End If
End If
If AltEtat = "Vrai" Then 'Touche
ALT
If IM_Seigneur.Visible = False Then
' Si l'image est visible, on la
cache...
IM_Seigneur.Visible = True
Else 'sinon...
IM_Seigneur.Visible = False
'... on la montre
End If
If ET_Legende.Visible = False Then
' Si la légende est visible, on
la cache...
ET_Legende.Visible = True
Else 'sinon...
ET_Legende.Visible = False
'... on la montre
End If
End If
End Sub
-
Enregistrez votre
programme en apportant les corrections nécessaires
aux noms. Vous pouvez déjà le tester.
-
Ajoutez cette
dernière procédure dans l'événement KEYUP de la
feuille. L'objectif est de ramener toutes les variables à
faux.
Private Sub Form_KeyUp(KeyCode As Integer, Shift As Integer)
'Réinitialisation
des variables lors du relàchement de la touche
MajEtat = (Shift And vbShiftMask)
CtrlEtat = (Shift And vbCtrlMask)
AltEtat = (Shift And vbAltMask)
End Sub
-
Enregistrez à
nouveau votre programme. Vous pouvez aussi travailler avec
les touches de fonction. Ajoutez la section de code
ci-dessous à la procédure FORM_KEYDOWN, juste avant le
END SUB.
Select Case KeyCode
'Réaction en fonction de la
touche enfoncée
Case vbKeyF1
If ET_F1.BorderStyle = 0 Then
'Si la bordure de l'étiquette est absente...
ET_F1.BorderStyle = 1
'la bordure est activée
Else
'sinon
ET_F1.BorderStyle = 0 'elle
est désactivée
End If
Case vbKeyF2
If ET_F2.BorderStyle = 0 Then
ET_F2.BorderStyle = 1
Else
ET_F2.BorderStyle = 0
End If
End Select
-
Enregistrez à
nouveau votre programme et testez-le.
Application:
- Complétez le programme
précédent de façon à ce qu'il réagisse aussi
lorsqu'on enfonce les touches F3 à F6 ou les
touches MAJ, CTRL et ALT (les trois dernières
provoqueront à la fois une réaction sur les images et
sur les étiquettes. Sauvegardez le programme modifié
sous le nom Ex_18bxx.vbp.
|