Contrôles timer et image

Description

Contrôles "Timer"et "Image"

Contrôle "Image"
Ce contrôle permet d'afficher des images bitmap, des icônes ou des métafichiers, ainsi que des métafichiers étendus et des fichiers JPEG ou GIF.
Le contrôle Image utilise moins de ressources et redessine plus rapidement qu'un contrôle PictureBox. la propriété Stretch permet d'ajuster les dimensions de l'image affichable dans le contrôle si sa valeur est "true".

Contrôle "Timer" .
Un contrôle Timer est en mesure d'exécuter du code à des intervalles de temps réguliers en déclenchant un événement Timer.

Le contrôle Timer, invisible à l'utilisateur en mode exécution, est utile pour le traitement en arrière-plan .
Le nombre de contrôles Timer actifs utilisables par Visual Basic 5.0 sous Windows 95 ou Windows NT est pratiquement illimité.

Exemple d'application : programme "panorama"permettant d'afficher successivement des images, à intervalles de temps réguliers .

Guide de développement :
1- démarrer un nouveau projet ( exe standard)
2- insérer un contrôle "Timer", un contrôl "Image" et trois contrôles "commandboutton" dans la feuille.
3- Positionner ces contrôles dans un certain ordre qui plaît à l'œil .

4- Définir quelques propriétés de ces contrôles

Contrôles name Caption interval enabled stretch
Commandbutton1 command1 Marche
commandbutton2 command2 Arrêt
Commandbutton3 command3 Quitter
Image image1 true
Timer Timer1 2000 true

5- Après avoir préparé l'interface du projet, il ne reste qu'à passer à la saisie du code source qui animera cette intérface :
- Double-cliquer sur le bouton "command3" pour ouvrir la feuille de saisie du code source pour ce contrôle. Nous voulons mettre fin à l'exécution du proframme en cliquant sur ce bouton:
Private Sub command3_Click()
End
End Sub
C'est un sous programme privé , il devient exécutable si le bouton "command3" reçoit un click de la souris. L'instruction " end " met fin à l'exécution du programme.
- Double-cliquer sur le bouton "command2" pour ouvrir la feuille de saisie du code source pour ce contrôle. Nous voulons désactiver le contrôle "Timer" pour arrêter le défilement des images en cliquant sur ce bouton. Voilà le sous-programme qui gère cette tâche :
Private Sub Command2_Click()
Timer1.Enabled = False
End Sub
L'instruction Timer1.Enabled = False donne l'ordre à V.B de désactiver le contrôle "Timer1".L'exécution du programme de défilement des images cesse aussitôt que cette instruction est exécutée.

- Double-cliquer sur le bouton "command1" pour ouvrir la feuille de saisie du code source pour ce contrôle. Nous voulons activer le contrôle "Timer" pour qu'il reprenne l'exécution de défilement des images en cliquant sur le bouton "command1". Voilà le sous programme qui gère cette tâche :
Private Sub Command2_Click()
Timer1.Enabled = True
End Sub
L'instruction Timer1.Enabled = True donne l'ordre à V.B d'activer le contrôle "Timer" pour qu'il reprenne I'exécution du programme de défilement des images .

-Double-cliquer sur une place vide de la feuille (form1) puis choisisser dans la liste déroulante l'entrée "général" et saisisser la ligne de déclaration d'une variable "i" entière là ou le curseur clignote.

dim i as integer

Cette déclaration est d'ordre general , ça veut dire que la variable "i" sera traitée en tant que varaiable entière dans toute les procédures aussi bien de la feuille que des contrôles qu'elle contient. La différence entre une déclaration locale et une déclaration générale est ce qu'on apelle la portée, dans ce sens qu'une déclaration locale n'est disponible qu'au sein de la procédure dans laquelle en la déclare.

- Double-cliquer sur le contrôle "Timer " pour ouvrir la feuille de saisie du code source pour ce contrôle.

Private Sub Timer1_Timer()
fichier$ = "ma" & i & ".jpg"
dossier$ = App.Path
chemin$ = dossier$ & "\" & fichier$
Image1.Picture = LoadPicture(chemin$)
i = i + 1
If i = 6 Then i = 1
End Sub

Nous commençons tout d'abord par construire le chemin complet de l'image que l'on veut afficher par les premières trois lignes de commandes. Nos images sont contenues dans les fichiers graphiques : ma1.jpg, ma2.jpg, ma3.jpg, ma4.jpg, ma5.jpg. Ces images seront affichées à tour de rôle (la première puis la deuxième et la troisième ...).

L'instruction fichier$ = "ma" & i & ".jpg" permet de construire le chemin du fichier graphique numéro "i" .Nous avons initialisé la variable i dans l'événement "load " de la feuille (form1) avec la valeur 1, ce qui veut dire que le nom du premier fichier graphique qui va être construit est " ma1.jpg ".

L'instruction dossier$ = App.Path affecte à la varaible string "dossier$" le nom du répertoire ou se trouve le projet V.B en cours. Ce répertoire doit contenir nos fichiers graphiques.

L'instruction chemin$ = dossier$ & "\" & fichier$ affecte à la variable string "chemin$" le resultat de la concaténation du nom du répertoire, du caractère "\" et du nom du fichier graphique. Par exemple, pour i=1, le résultat de cette concaténation est : chemin$ = votre repértoire\ma1.jpg.

L'instruction Image1.Picture = LoadPicture(chemin$) charge dans le contrôle "image1" l'image reconnue par le chemin complet "chemin$".

L'instruction i = i + 1 permet d'incrémenter la variable i (nouvelle valeur de i = son ancienne valeur +1). Nous voulons que la variable "i", la prochaine fois que le contrôle "Timer1" exécute le même programme (après 2000 ms) , soit égale à 2. C'est normal puisque nous voulons afficher la deuxième image qui sera reconnue, après concaténation, par son chemin "votre repértoire\ma2.jpg".

Double-cliquer sur la feuille (form1) et sélectionner la procédure "Load" pour cet objet . Nous voulons centrer la feuille-interface sur l'écran pour une meilleure présentation à l'utilisateur et, pour le faire, nous allons profiter de la procédure automatique "load" pour centrer notre intérface dès le démarrage du programme.

Private Sub Form_Load()
Form1.Left = 1 / 2 * (Screen.Width - Form1.Width)
Form1.Top = 1 / 2 * (Screen.Height - Form1.Height)
i = 1
End Sub

L'instruction Form1.Left = 1 / 2 * (Screen.Width -Form1.Width) permet de positionner, horizontalement et à partir du coin gauche de l'ecran, le coin gauche (left)de la feuille "form1" à une distance ègale à la moitié de la différence entre la largeur (width) de l'écran et la largeur de la feuille. Ainsi le coin gauche et le coin droit de la feuille seront succéssivement équdistants aux coin gauche et droit de l'ecran .

L'instruction Form1.Top = 1 / 2 * (Screen.Height - Form1.Height) permet de positionner, verticalement et à partir du coin haut de l'ecran, le coin gauche de la feuille "form1" à une distance ègale à la moitié de la différence entre la hauteur (height) de l'écran et la haueur de la feuille. Ainsi le coin haut et le coin bas de la feuille seront succéssivement équdistants aux coin haut et au coin bas de l'ecran .

L'instruction i = 1 initialise la variable "i" avec une valeur égale à 1.
L'opérateur logique & (and) permet de concaténer les constantes et les valeurs temporelles des variables .D'où la préférence d'utiliser l'opérateur "&" au lieu de l'opérateur "+".

Enregistrer le projet

Dans le menu "Fichier" cliquer sur "Enregistrer le projet sous" pour ouvrir une fenêtre qui vous demandera le non de la feuille ( vous propose par défaut le nom "form1.frm"), mais vous pouvez le changer pour qu'il devienne plus significatif ) .Il est toujours préférable d'arranger tous les fichiers d'un même projet dans un répertoire à part que vous pouvez simplement créer en cliquant sur la boîte jaune (créer un nouveau dossier). Après,vous double-cliquer sur le nouveau répertoire que vous venez de créer pour l'ouvrir et y enregistrer le fichier (form1) . Après cette première opération, VB vous propose un nom de projet ( par défaut, il vous propose projet1.vbp) que vous devez energistrer dans le même répertoire.

Remarque : N'oublier surtout pas d'enregistrer votre projet avant de l'exécuter, car ce dernier peut planter (bloquer le PC) et vous obligerait à redémarrer votre PC ou fermer VB. vous n'auriez, hélas, qu'à vous lamenter de voir des heures de travail volatilisées, comme ça *.

Télécharger le programme.

Codes Sources

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.