|
0) Introduction
Dans cette partie,
nous traiterons de ce qu'on appelle des boîtes de
dialogue de type Entrées/Sorties, qui permettent
d'afficher des messages, de poser des questions simples...
Chaque boîte de dialogue est spécifique,
mais vous ne pouvez pas changer leur design. Elles ont
étéprogrammépour donner une certaine
uniformitépar rapport aux autres applications
Windows. Etant très utilisées dans tout
programme, elles permettent d'éviter leur programmation
par le créateur, et se mettent directement àson service par un simple mot clé.
Les Entrées et sorties sont des boîtes de
dialogue qui permettent des actions simples, comme :
- afficher un message
- poser une question àchoix multiple
- demander une valeur
1) Afficher
un message
Seul le texte peut être
défini librement. Le reste des possibilités
se restreint àdes choix.
Pour afficher une boîte
de dialogue àl'écran, la syntaxe est la
suivante :
MsgBox Message, Type_de_boîte, Titre, Fichier_Aide,
Rubrique
- Message >Message
àafficher
- Type_de_boîte >Définit l'icône
et les boutons àafficher (0 par défaut)
- Titre >Titre de la boîte de dialogue
(nom de l'application par défaut)
- Fichier_Aide >Chemin et nom du fichier d'aide
associéau bouton "Aide"
- Rubrique >Numéro de la rubrique d'aide
Seul Message est un paramètre
obligatoire. Les autres sont facultatifs.
Dans ce cas, la boîte de dialogue n'aura pas d'icône
et n'aura qu'un bouton intitulé"OK".
Note : pour des boîtes de dialogue àplusieurs
lignes, utilisez la constante système vbCrLf
>>Message = "1ère ligne !"&vbCrLf &"2ème ligne "&vbCrLf
&"3ème ligne"
Les types de boîtes diffèrent par leur icône
et leurs boutons. De plus, àchaque affichage d'une
de boîte de dialogue un son se produit. Ce son diffère
dépend aussi du type de boîte.
Type_de_boîte peut
prendre les valeurs ou les constantes suivantes :
|
|
Valeur
|
Constante
|
Icône
|
Ex
d'utilisation
|
|
16
|
vbCritical
|
|
Message
critique
|
|
32
|
vbQuestion
|
|
Confirmation
|
|
48
|
vbExclamation
|
|
Avertissement
|
|
64
|
vbInformation
|
|
Message
d'information
|
|
|
|
|
Exemple
d'utilisation
' ex: Lecture
d'un fichier
Private
Sub Command1_Click()
On Error Goto Erreur_Stats
qnr = FreeFile
Open "c:\fichier.txt"For Input As #qnr '
Ouverture du fichier
Line Input #qnr, Temp$
Close #qnr '
Fermeture du fichier
...
...
Exit Sub
Erreur_Stats:
MsgBox "Impossible de lire le fichier !", vbCritical,
"Erreur"
End Sub
Dans cet exemple, le programme exécute les instructions
contenues dans Erreur_Stats s'il rencontre une erreur
dans l'ouverture du fichier!
2) Poser une question àchoix multiple
Pour poser une question, la syntaxe est la même
que pour afficher un message. Seulement pour connaître
la réponse de l'utilisateur, vous devez placer
l'instruction dans une variable (Type Integer), qui recevra
le code du bouton sélectionné.
Reponse% = MsgBox(Message, Type_de_boîte, Titre,
Fichier_Aide, Rubrique)
- Message >Message àafficher
- Type_de_boîte >Définit l'icône
et les boutons àafficher (0 par défaut)
- Titre >Titre de la boîte de dialogue
(nom de l'application par défaut)
- Fichier_Aide >Chemin et nom du fichier d'aide
associéau bouton "Aide"
- Rubrique >Numéro de la rubrique d'aide
Type_de_boîte peut prendre les valeurs ou
les constantes suivantes :
|
|
Valeur
|
Constante
|
Icône
|
Ex
d'utilisation
|
|
16
|
vbCritical
|
|
Message
critique
|
|
32
|
vbQuestion
|
|
Confirmation
|
|
48
|
vbExclamation
|
|
Avertissement
|
|
64
|
vbInformation
|
|
Message
d'information
|
|
|
|
|
|
|
Valeur
|
Constante
|
Boutons
|
|
0
|
vbOKOnly
|
OK
|
|
1
|
vbOKCancel
|
OK &Annuler
|
|
2
|
vbAbortRetryIgnore
|
Abandon
&Réassayer
&Ignorer
|
|
3
|
vbYesNoCancel
|
Oui
&Non &Annuler
|
|
4
|
vbYesNo
|
Oui
&Non
|
|
5
|
vbRetryCancel
|
Réassayer
&Annuler
|
|
|
|
|
|
-= CHOIX DU BOUTON
ACTIF =-
|
|
|
Valeur
|
Constante
|
Bouton
actif
|
|
0
|
vbDefaultButton1
|
Premier
bouton
|
|
256
|
vbDefaultButton2
|
Deuxième
bouton
|
|
512
|
vbDefaultButton3
|
Troisième
bouton
|
|
768
|
vbDefaultButton4
|
Quatrième
bouton
|
|
|
|
|
|
-= CHOIX DE LA
MODALITE =-
|
|
|
Valeur
|
Constante
|
Modalité
|
|
0
|
vbApplicationModal
|
Au niveau
application : doit être
refermée pour qu'une
autre fenêtre du
programme soit activée.
|
|
4096
|
vbSystemModal
|
Au niveau
système : doit
être refermée
pour qu'une autre fenêtre
du programme ou d'une
autre application soit
activée.
|
|
|
|
|
Pour pouvoir combiner les différents choix, il
vous suffit d'additionner les valeurs ou les constantes,
selon votre choix.
Prenons un exemple : vous voulez demander àl'utilisateur
lors de la fermeture de votre programme s'il souhaite
sauvegarder les données modifiées, par exemple
pour un traitement de texte, cela par une boîte
de dialogue contenant deux boutons "Oui", "Non"et "Annuler". Le focus doit être sur "Annuler".
Private
Sub Command1_Click()
Reponse% = MsgBox ("Voulez-vous sauvegarder les
modifications apportées ?", vbQuestion + vbDefaultButton3
+ vbYesNoCancel, "Confirmation")
' ou
Reponse% = MsgBox ("Voulez-vous
sauvegarder les modifications apportées ?",
547, "Confirmation")
End Sub
Maintenant,
il ne vous reste plus qu'àrécupérer
la valeur renvoyée par MsgBox dans Reponse%, qui
vous indiquera quel bouton a étéappuyé.
Làencore, la touche est renvoyée sous forme
de valeur ou de constante :
|
|
Valeur
|
Constante
|
Boutons
|
|
1
|
vbOK
|
OK
|
|
2
|
vbCancel
|
Annuler
|
|
3
|
vbAbort
|
Abandon
|
|
4
|
vbRetry
|
Réassayer
|
|
5
|
vbIgnore
|
Ignorer
|
|
6
|
vbYes
|
Oui
|
|
7
|
vbNo
|
Non
|
|
|
|
|
La valeur Reponse% n'a plus qu'àêtre comparéaux différentes valeurs/constantes
possibles àl'aide d'une instruction If...End If,
ce qui permet de déclencher plusieurs procédures
différentes en fonction de la réponse :
Private
Sub Command1_Click()
Reponse% = MsgBox ("Voulez-vous sauvegarder les
modifications apportées ?", vbQuestion + vbDefaultButton3
+ vbYesNoCancel, "Confirmation")
If Reponse% = vbYes Then
' Instructions de sauvegarde
Unload Me
ElseIf Reponse% = vbNo Then
Unload Me
End If
End Sub
Si le bouton Oui a étéchoisi, Reponse%
renvoie la valeur 6 ( vbYes = 6 )
Si le bouton Non a étéchoisi, Reponse%
renvoie la valeur 7 ( vbNo = 7 )
Si le bouton Annuler a étéchoisi, Reponse%
renvoie la valeur 2 ( vbCancel = 2).
3) Demander une valeur
Pour demander une valeur, cette fois la syntaxe est différente.
L'instruction InputBox remplace MsgBox. Comme vous demandez
une valeur qui sera renvoyée par InputBox lui-même,
vous devez placer l'instruction dans une variable (Type
String), qui recevra par ailleurs le code du bouton sélectionné.
Reponse$ = InputBox (Message, Titre, Defaut, X, Y, Fichier_Aide,
Rubrique)
- Message >Message àafficher
- Titre >Titre de la boîte de dialogue
(nom de l'application par défaut)
- Defaut >Texte par défaut s'affichant
dans la zone de texte de la boîte de dialogue lors
de son affichage (en surligné)
- X >Coordonnées X ( axe des abscisses
) par rapport àla gauche de l'écran
- Y >Coordonnées Y ( axe des ordonnées
) par rapport au haut de l'écran
- Fichier_Aide >Chemin et nom du fichier d'aide
associé
- Rubrique >Numéro de la rubrique d'aide
Seul Message est un paramètre obligatoire.
Les autres sont facultatifs.
Vous souhaitez demander àl'utilisateur d'entrer
son prénom avant de continuer.
Private
Sub Command1_Click()
Reponse$ = InputBox("Veuillez entrer votre pseudo
: ", "Information", "Tapez votre
prénom ici")
If
Reponse$ = ""Then
' Bouton Annuler pressé
Rep% = MsgBox("Voulez-vous abandonner
??", vbYesNo + vbInformation, "Confirmation")
...
ElseIf Reponse$ = "CYBERATOM"Then
' Administrateur
MsgBox "Vous entrez dans l'espace administrateur...",
vbInformation, "Message"
...
Else
' Utilisateur quelconque
...
End If
End Sub
Il est ànoter que Reponse$ renvoie ""si l'utilisateur clique sur le bouton Annuler de la boîte
de dialogue.
|