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

Chronomètre - Le contrôle Timer

Cet exercice doit vous permettre de maîtriser le contrôle Timer et de découvrir l'événement Timer qui y est attaché.

Cette image vous montre l'aspect de votre application une fois terminée.
Si vous vouloir comment cela fonctionne, vous pouvez lancer l'exécutable en cliquant ici.

Les étapes de programmation

Comme toujours, vous organiserez 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 disposer les contrôles classiques comme indiqués sur l'image ci-dessous (n'oubliez pas que le menu Format vous fournit tout ce dont vous avez besoin pour disposer correctement vos contrôles):

Vous avez besoin de :
  - trois étiquettes,
  - une zone de texte,
  - trois boutons de commande,
  - et, c'est là l'aspect important de l'exercice: un contrôle Timer.

Il est facile à reconnaître dans votre barre d'outil: c'est le contrôle symbolisé par un petit chronomètre. Vous pouvez le placer n'importe où sur votre formulaire: il n'est pas visible pour l'utilisateur mais seulement pour le développeur.

Lorsque vous avez fini, n'oubliez pas d'aller dans Format > Verrouiller les contrôles pour éviter tout déplacement intempestif par la suite.

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.

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

Objet  Propriété  Valeur
Form1  Name  frm01
 Text  Exercice - Horloge
Label1  Name  lblIntervale
 Text  Intervale (en millisecondes) :
Label2  Name  lblAppel
 Text  Nombre d'appels :
Label3  Name  lblNbAppel
 Caption  0
 BorderStyle 1 - Fixed single
 BackColor Blanc
Text1  Name  txtIntervale
 Text  500
Command1  Name  cmdActiver
 Text  &Activer
Command2  Name  cmdDesactiver
 Text  &Désactiver
Command3  Name  lblQuitter
 Text  &Quitter
Timer1  Name  tmrHorloge
 Enabled  False (par défaut)
 Interval  100

Si vous avez bien suivi les instructions fournies par le tableau votre formulaire devrait désormais ressembler à cela:

Le principe est le suivant: votre bouton Activer permet de lancer le chronométre.
Le bouton Désactiver permet de l'arrêter.
Une fois le chronomètre lancé, l'étiquette lblNbAppel s'incrémente de 1 toutes les X millièmes de secondes, X étant défini par la valeur entrée dans txtIntervale.

Autrement dit dans la configuration par défaut, votre étiquette lblNbAppel s'incrémentera de 1 tous les 500 millièmes de secondes (c'est-à-dire deux fois par seconde).
Bien sûr, si vous appuyez sur le bouton Désactiver, l'incrémentation s'interrompt.

Tous ces boutons vous permettent en vérité d'interragir avec les quelques propriétés du contrôle Timer.
Si vous sélectionnez le contrôle Timer et que vous allez ensuite dans la fenête de propriétés, vous constaterez que celles-ci sont peu nombreuses.
Ces propriétés permettent de définir à quelle fréquence (Interval) doit se déclencher - si le contrôle Timer est activé (Enabled) - l'événement Timer.
  - la propriété Name sert uniquement à désigner le contrôle Timer dans le code. Le préfixe usuel est tmr.
  - la propriété Enabled indique si le contrôle Timer est activé ou non.
  - la propriété Interval indique à quelle fréquence le contrôle déclenche l'événement Timer.

L'événement de l'objet Timer s'appelle Tick et s'écrit de la manière suivante (mais rappelez-vous que vb rédige tout cela à votre place):

Private Sub tmrHorloge_Tick(ByVal sender As Object, ByVal e As System.EventArgs) Handles tmrHorloge.Tick
  Instructions...
End Sub

Cet événement se déclenche, lorsque le contrôle Timer tmrHorloge est activé tous les X millièmes de secondes (X étant défini par la propriété Interval du contrôle).

Bien. Si vous avez compris le principe, il ne vous reste plus qu'à écrire les trois lignes de codes nécessaires au bon fonctionnement de votre formulaire.

3. Ecrire le code du programme

Lorsque vous appuyez sur le bouton Activer (événement Click), vous modifiez la propriété Enabled du contrôle tmr_Horloge.
Le bouton Désactiver a bien sûr pour fonction de mettre à False la propriété Enabled du même contrôle.

Pour le bouton Quitter, je ne vous fais pas un dessin, vous le connaissez maintenant par cœur.

Il reste un dernier petit truc à paramétrer. Vous avez dans la zone de texte destinée à préciser l'intervale auquel doit se déclencher l'événement _Timer la valeur 500. Or votre contrôle Timer a sa propriété Interval définie à 100.
Il faut donc que vous preniez la peine au démarrage de votre formulaire (événement Form_Load), d'attribuer à la propriété Interval la valeur qui se trouve dans la zone de texte txtIntervale.

Pour accéder à la propriété Interval du contrôle Timer, c'est toujours le même principe de la syntaxe à point  :

tmrHorloge.Interval = maDureeenMilliseconde

Pour que quelque chose se passe à l'écran lorsque vous activez le Timer, il faut que l'événement Timer modifie l'affichage de votre formulaire  : en incrémentant de 1 le contenu de l'étiquette lblNbAppel à chaque événement Timer. (La syntaxe de l'événement Timer est décrite ci-dessus).

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

Plan du site  |  Mentions légales  |  Crédits  |  Aide