Boîtes de dialogue - Entrées/Sorties



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 :

  -= CHOIX DE L'ICONE =-

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 :

  -= CHOIX DE L'ICONE =-

Valeur
Constante
Icône
Ex d'utilisation
16
vbCritical
 Message critique
32
vbQuestion
 Confirmation
48
vbExclamation
Avertissement
64
vbInformation
Message d'information



  -= CHOIX DES BOUTONS =-

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 :

  -= BOUTON ENFONCE =-

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.










(c) - CYBER@TOM ASSOCIATION 2000-2004