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

La calculatrice

Cet exercice doit vous permettre de comprendre l'importance du type des données et de mettre en oeuvre la structure conditionnelle de type If ... Then. Toutes les indication vous sont données pour le réaliser par vous-même. Normalement vous ne devriez éprouver aucune difficulté.

Si toutefois vous étiez bloqué, vous pouvez toujours télécharger les fichiers sources de l'exercice ici en faisant un clic droit Enregistrer sous.

Vous pouvez télécharger l'exécutable ici en faisant un clic droit (Enregistrer sous).

Capture d'écran de l'interface à réaliser

Cette image vous montre l'aspect de votre application une fois terminée.
Deux zones de textes sont situées à gauche du formulaire et permettent à l'utilisateur de rentrer des valeurs numériques. Au centre l'utilisateur a à sa disposition quatre options: Addition, Soustraction, Division entière et Modulo entre lesquelles il peut choisir. Ce choix doit bien sûr être exclusif (soit addition, soit soustraction, mais pas les deux ensemble). Le résultat de l'opération s'affiche dans la fenêtre de droite.
Le bouton Quitter permet de quitter l'application. L'utilisateur peut également quitter l'application en appuyant sur la touche Echapp. Le bouton Calculer quant à lui permet d'effectuer, à partir des deux valeurs entrées par l'utilisateur, l'opération séléctionnée et d'afficher son résultat dans l'étiquette située à droite. C'est lui qui déclenche le calcul.

Les étapes de programmation

Comme toujours, vous essayerez d'organiser votre travail en trois étapes:
  - création de l'interface utilisateur
  - définition des propriétés
  - écriture du programme

1. Création de l'interface graphique

Commencez par ouvrir un nouveau projet puis redimensionnez le formulaire jusqu'à ce que ses propriétés height et width aient respectivement les valeurs 5000 et 7000. Si cela vous pose des difficultés, retournez voir l'exercice sur la prise en main de VB.

Cet exercice comprend:

A l'aide des options fournies par le menu Format > Uniformiser la taille ou Format > Aligner, etc., uniformisez la taille des contrôles et centrer les de manière à ce que votre formulaire ressemble à peu près à cela:

Capture d'écran de la mise en place de l'interface

2. Définition des propriétés

Commencez par définir si ce n'est pas déjà fait la propriété Name de votre formulaire en frm01 (si vous avez correctement créé votre modèle cela ne devrait pas être nécessaire).

Vous devez ensuite définir les propriétés des 10 contrôles présents sur votre formulaire comme indiqué dans le tableau qui suit:

Objet  Propriété  Valeur
Form1  Name  frm01
 Caption  Exercice - Calculatrice
Label1  Name  lblTitre
 Caption  Calculatrive VB
 Alignment 2 - Center
 Font  MS sans serif, 12, gras
Text1  Name  txt01
 Text  (vide)
Text2  Name  txt02
 Text  (vide)
Option1  Name  optAddition
 Caption  &Addition
Option2  Name  optSoustraction
 Caption  &Soustraction
Option3  Name  optDivisionEntiere
 Caption  &Division entière
Option4  Name  optModulo
 Caption  &Modulo
Label2  Name  lblAffichage
 Caption  (vide)
 BorderStyle 1 - Fixed single
 BackColor Fond de la fenêtre (blanc)
Command1  Name  cmdCalculer
 Caption  &Calculer
 Default  True
Command2  Name  cmdQuitter
 Caption  &Quitter
 Cancel  True

Chaque feuille peut contenir un bouton par défaut (propriété Default) et un bouton d'annulation (propriété Cancel). Ces deux propriétés ont été définies à True l'une pour le bouton cmdCalculer, l'autre pour le bouton cmdQuitter.

L'entrée (vide) pour les propriétés Text des zones de textes permet que celles-ci soient vides de tout contenu au démarrage de l'application.

Le caractère '&' qui précède le texte présent dans la propriété Caption des différents boutons radio permet de créer automatiquement un raccourci disponible avec la combinaison des touches Alt + le caractère précédé d'un '&' très exactement comme dans les interfaces Windows traditionnelles.

Remarquez que les propriétés de style du Label2 lui donne une apparence tout à fait identique à celle des zones de texte situées à gauche. Il n'en reste pas moins qu'il s'agit d'une étiquette et que donc
  1 - son contenu ne peut pas être modifié par l'utilisateur,
  2 - c'est sa propriété Caption qui détermine son contenu et non sa propriété Text (comme dans le cas des zones de texte).

Il ne vous reste plus qu'à Verrouiller les contrôles et à faire un clic-droit sur la fenêtre Présentation des feuilles (menu Affichage > Fenêtre présentation des feuilles) et choisir la commande Position de départ > Centrer dans l'écran.

Votre formulaire doit désormais ressembler à cela&thinps; :

Capture d'écran du formulaire réalisé

Pour l'instant il ne réagit pas aux sollications de l'utilisateur. Il faut donc passer à la partie programmation.

3. Ecrire le code du programme

Quelles vont être les interactions de l'utilisateur avec votre formulaire?

Tout d'abord celui-ci va pouvoir entrer du texte dans les deux zones de texte située à gauche. Mais le fait de modifier le contenu de ces zones ne déclenche rien.
Idem pour les boutons radio: l'utilisateur séléctionne une des quatre possibilités qui lui sont offertes mais ce choix ne déclenche encore aucun programme.
C'est le bouton Calculer qui est chargé, lorsqu'on appuie dessus, de récupérer les deux valeurs entrées par l'utilisateur et d'afficher le résultat de l'opération séléctionnée dans l'étiquette située à droite de l'écran. C'est donc sur l'événement Click de ce bouton que va se déclencher l'exécution de l'essentiel du code contenu dans ce formulaire.
Reste le bouton Quitter qui permet simplement de quitter votre application aisément.

Revenons donc sur l'événement Click du bouton Calculer.

Si vous cliquez sur ce bouton dans l'interface graphique, VB ouvre la page de code et écrit pour vous le début et la fin de la procédure événementielle qui se déclenche lorsque l'utilisateur clique sur le bouton cmdQuitter.

Private Sub cmdCalculer_Click()
  
End Sub

La première étape consiste à récupérer les valeurs soumises par l'utilisateur.
Les valeurs soumises dans une zone de texte sont récupérées sous forme de chaîne de caractère. Votre premier travail va consister à convertir ces chaînes de caratère en variable de type numérique (entier, long, double, etc.)

Si la question vous paraît difficile, commencez par relire le chapitre du cours consacré au typage des variables.

Il existe 2 manières de convertir le type:   - soit vous affectez le contenu de votre chaîne de caractère à une variable de type entier par exemple. Si l'utilisateur a entré un nombre inférieur à 32767, la conversion se passera bien. Dans les autres cas cela générera une erreur.   - soit vous utilisez les fonctions de conversion disponibles dans VB. Pour les connaître, utilisez l'explorateur d'objet (raccourci F2) de VB et recherchez "Conversion" comme indiqué dans l'image ci-dessous.

Capture d'écran de l'explorateur d'objet

Parcourez cette liste. Vous voyez qu'il en existe pour tous les goûts. Celle qui vous sera utile dans cet exercice est la fonction Val() qui renvoie les nombres contenus dans une chaîne.

Une fois convertis les données entrées par l'utilisateur, pensez à affecter le contenu de ces conversions à des variables que vous aurez déclarées et dont la portée sera limitée à la procédure Sub cmdCalculer_Click().
Choisissez un type de variable qui permette d'effectuer des calculs avec des chiffres à virgule., Pensez également à suivre les conventions de dénomination.

Il vous faudra ensuite savoir quelle option l'utilisateur a séléctionné. Cette information vous est donnée par la propriété Value des contrôles optAddition, optSoustraction, etc. avec la syntaxe suivante:

optAddition.Value

Cette propriété renvoie la valeur True lorsque l'utilisateur a coché l'option Addition (dans le cas de l'exemple qui précède), False dans les autres cas.

Il ne vous reste plus qu'à tester les différents cas à l'aide d'une structure conditionnelle de type If ... ElseIf ...End If et à exécuter les instructions qui conviennent selon les cas.
Pour la syntaxe de ses instructions, tout ce dont vous avez besoin se trouve dans l'exercice "Prise en main de VB" disponible sur WebCT (avec ses sources).

N'oubliez pas de mettre le code adéquat pour que votre bouton Quitter fonctionne correctement.