logo Pierre AULAS
Visual Basic 6 - Boutons et cadres
 Parcours  |   Réalisations  |   Cours  |   Chroniques  |   Divers
Création de l'interface graphique
Définition des propriétés
Ecrire le code du programme

Boutons et cadres

Cet exercice a pour but de vous faire mettre en oeuvre les boutons de radio (OptionButton), cases à cocher (CheckBox) et cadres (frame).

Cette image vous montre l'aspect de votre application une fois terminée.
L'idée est de créer un formulaire de mailing qui permet à l'utilisateur de déterminer les rubriques du journal qui l'intéresse, la langue et la périodicité des envois.
Trois groupes de boutons occupent donc la partie haute du formulaire. Le premier groupe permet de séléctionner des rubriques, le second permet de déterminer la langue et le dernier permet de séléctionner la périodicité des envois.
En bas du formulaire se trouve une zone de liste qui permet d'afficher les choix fait par l'utilisateur au fur et à mesure.
Un bouton de commande d'envoi permet de quitter l'application (on peut supposer qu'avant de fermer la fenêtre on ajouterait quelques lignes de code pour envoyer à une application les choix faits par l'utilisateur).

Vous pouvez tester ici comment fonctionne ce formulaire.

Les étapes de programmation

Comme toujours, vous essayerez de travailler en trois temps  :

1. Création de l'interface graphique

Cet exercice comprend de nombreux contrôles. Faites attention à les nommer correctement.

Les trois premiers sont des cases à cocher (CheckBox) précédées d'une étiquette.

Ensuite vous devez placer deux cadres (frames) sur le formulaire. Vous placerez ensuite trois boutons d'option (OptionButton) dans le premier cadre et trois autres boutons d'option (OptionButton) dans le second.
Si vous avez procédé correctement, vous devez constater que lorsque vous déplacez vos cadres, les contrôles placés à l'intérieur se déplacent en même temps, comme s'ils formaient un bloc.

Il ne vous reste plus alors qu'à placer une zone de liste (ListBox) en bas à gauche (suffisament grande pour pouvoir accueillir 5 lignes de texte) et un bouton de commande en bas à droite.

C'est le moment, si vous le souhaitez, d'aller dans le menu Format > Verrouiller les contrôles.

À ce stade, votre formulaire devrait ressembler à ceci  :

Attention! Vérifiez que votre cadre du milieu contient bien des boutons d'option et non pas des boutons de commande.

Haut de page

2. Définition des propriétés

Définissez maintenant les propriétés des 14 contrôles présents sur votre formulaire  :

Objet  Propriété  Valeur
Form1  Name  frm01
 Caption  Exercice - Boutons et cadres
Label1  Name  lblRubrique
 Caption  Choix des rubriques
Check1  Name  chkPolitique
 Caption  &Politique
Check2  Name  chkSociete
 Caption  &Société
 Value  1 - Checked
Check3  Name  chkLoisirs
 Caption  &Loisirs
Frame1  Name  fraLangue
 Caption  Langue
Option1  Name  optFrancais
 Caption  (vide)
 Style  1 - Graphical
 Picture  draFrancais.ico
 Value  True
Option2  Name  optAnglais
 Caption  (vide)
 Style  1 - Graphical
 Picture  draAnglais.ico
Option3  Name  optAllemand
 Caption  (vide)
 Style  1 - Graphical
 Picture  draAllemand.ico
Frame2  Name  fraFrequence
 Caption  Fréquence
Option4  Name  optMensuelle
 Caption  Mensuelle
Option5  Name  optHebdomadaire
 Caption  Hebdomadaire
Option6  Name  optQuotidienne
 Caption  Quotidienne
 Value  True
Label2  Name  lblAffichage
 Caption  (vide)
 BorderStyle 1 - Fixed single
 BackColor Blanc
Command1  Name  cmdQuitter
 Caption  &Quitter
 Cancel  True

Les cases à cocher peuvent être cochées indépendament les unes des autres. On peut en effet vouloir recevoir les infos politiques et les loisirs, ou uniquement les loisirs, ou les loisirs et la société, etc. Elles servent donc aux choix multiples.

Les cadres permettent quant à eux de regrouper visuellement des contrôles. Par ailleurs ils permettent une manipulation plus aisées des groupes de contrôles.

Enfin les boutons d'option n'autorisent qu'un seul choix: soit on veut un envoi mensuel, soit un envoi hebdomadaire, soit un envoi quotidien.
Si votre formulaire contient plusieurs ensembles de boutons d'option (c'est notre cas avec la langue d'un côté et la fréquence de l'autre), placez-les à l'intérieur d'un cadre afin que les différents groupes de boutons d'option n'interfèrent pas entre eux.

En l'état atuel votre formulaire devrait ressembler à cela  :

Attention! Vérifiez que votre cadre du milieu (celui concernant les langues) contient bien des boutons d'option et non pas des boutons de commande.

Pour l'instant il ne réagit pas aux sollications de l'utilisateur. Passons maintenant à la partie programmation.

Haut de page

3. Ecrire le code du programme

Il y a en réalité très peu de code à écrire pour faire fonctionner ce formulaire puisque quelque soit le bouton que l'utilisateur séléctionne (case à cocher, bouton de commande, bouton d'option), il s'agit à chaque fois de mettre à jour le contenu de la liste située en bas à gauche et qui recense les choix de l'utilisateur.
Autrement dit si vous avez bien compris le principe des procédures partagées (ou des fonctions), vous n'en avez que pour quelques minutes.

Il s'agit, à chaque fois que l'utilisateur clique sur un des contrôles du formulaire (sauf le bouton de commande Quitter), d'appeler une procédure qui s'occupe de l'affichage du contenu de la zone de liste.
Cela doit ressembler à quelque chose comme  :

Private Sub chkLoisirs_Click()
  Call Affichage
End Sub

...

Private Sub Affichage()
  
End Sub

Rappel: pour introduire des retour à la ligne entre différentes chaînes de caractère, vous pouvez recourir à la constante vb vbCrLf.

Ne lisez les lignes qui suivent que si vous êtes bloqués. Commencez par essayer de réaliser l'exercice par vous même.

Haut de page

Option Explicit
Private Sub
chkLoisirs_Click()
  Call Affichage
End Sub
Private Sub
chkPolitique_Click()
  Call Affichage
End Sub
Private Sub
chkSociete_Click()
  Call Affichage
End Sub
Private Sub
cmdQuitter_Click()
  End
End Sub
Private Sub
optAllemand_Click()
  Call Affichage
End Sub
Private Sub
optAnglais_Click()
  Call Affichage
End Sub
Private Sub
optFrancais_Click()
  Call Affichage
End Sub
Private Sub
optHebdomadaire_Click()
  Call Affichage
End Sub
Private Sub
optMensuelle_Click()
  Call Affichage
End Sub
Private Sub
optQuotidienne_Click()
  Call Affichage
End Sub
Private Sub
Affichage()
Dim strMsg As String
If
chkPolitique.Value Then
  strMsg = "Politique : Oui"
Else
  strMsg = "Politique : Non"
End If
If
chkSociete.Value Then
  strMsg = strMsg & vbCrLf & "Société : Oui"
Else
  strMsg = strMsg & vbCrLf & "Société : Non"
End If
If
chkLoisirs.Value Then
  strMsg = strMsg & vbCrLf & "Loisirs : Oui"
Else
  strMsg = strMsg & vbCrLf & "Loisirs : Non"
End If
If
optFrancais.Value Then
  strMsg = strMsg & vbCrLf & "Langue : Francais"
End If
If
optAnglais.Value Then
  strMsg = strMsg & vbCrLf & "Langue : Anglais"
End If
If
optAllemand.Value Then
  strMsg = strMsg & vbCrLf & "Langue : Allemand"
End If
If
optMensuelle.Value Then
  strMsg = strMsg & vbCrLf & "Fréquence : Mensuelle"
End If
If
optHebdomadaire.Value Then
  strMsg = strMsg & vbCrLf & "Fréquence : Hebdomadaire"
End If
If
optQuotidienne.Value Then
  strMsg = strMsg & vbCrLf & "Fréquence : Quotidienne"
End If
  lblAffichage.Caption = strMsg
End Sub

Les sources de cet exercice sont disponibles ici en faisant un clic droit "Enregistre la cible de ce lien".

Haut de page
Plan du site  |  Mentions légales  |  Crédits  |  Aide