COURS

- ELEMENTS DU LANGAGE -

 

 

LES CONTROLES

 

Les contrôles sont des objets graphiques permettant à l’utilisateur d’interagir avec le programme. Ils permettent une utilisation dynamique du programme. Ce sont des zones d’entrées/sorties, des zones de commande ou autres zones diverses. Ces contrôles sont déposés sur une feuille de travail appelée "Form" qui est elle même un contrôle. L’ensemble des contrôles affichés à l’écran constitue donc l’interface graphique. Sachez qu’en terminologie Windows ces contrôles sont encore appelés WIDGETS (concaténation de WINDOWS et de GADGETS).

 

 

Les contrôles standards :

 

Ce sont les contrôles les plus souvent utilisés. Ils sont disponibles dans la boîte à outils de Visual Basic.

Voici un tableau récapitulatif des contrôles standards :

 

Nom

Libellé

Commentaires

Form

Feuille

Fenêtre Windows

TextBox

Zone de texte

 

Label

Etiquette

 

PictureBox

Zone d'image

 

Image

Image

 

Frame

Cadre

 

CommandButton

Bouton de commande

 

CheckBox

Case à cocher

Plusieurs choix possibles

OptionButton

Bouton d'option

Choix unique

ComboBox

Liste déroutante

ou liste modifiable

ListBox

Liste

 

HScrollBar

Barre de défilement horizontale

 

VScrollBar

Barre de défilement verticale

 

Timer

Temporisateur

Instructions exécutées à intervalle régulier

DriveListBox

Liste de lecteurs

 

DirListBox

Liste de répertoires

 

FileListBox

Liste de fichiers

 

Shape

Forme

Formes géométriques

Line

Ligne

Trait

Data Control

Contrôle d'accès aux données

Accès aux bases de données

OLE

Contrôle objet

OLE = Object Linking Embedding

 

Remarques : il existe trois types de feuilles :

 

La feuille classique (Form),

La feuille principale ou mère (MDIForm),

La feuille fille (MDIChild).

 

La feuille classique est indépendante. C'est la feuille par défaut. Elle n'a aucun lien avec une autre feuille. Pour ajouter une feuille, cliquez sur "Ajouter une feuille" du menu "Projet" de la barre de menu.

La feuille principale (MDIForm) est une feuille mère, c'est à dire qu'il ne peut en avoir qu'une par projet (ou programme). C'est sur cette feuille que va venir s'encapsuler toutes les autres feuilles du projet qui seront des feuilles MDIChild. Pour ajouter une feuille MDI, cliquez sur "Ajouter une feuille MDI" du menu "Projet" de la barre de menu.

La feuille MDIChild est une feuille fille, il peut en avoir plusieurs dans un projet (ou programme). Pour ajouter une telle feuille, il suffit d'ajouter une feuille classique et de renseigner la valeur "True" dans la propriété "MDIChild" de la fenêtre de propriété.

 

L'intérêt d'utiliser une feuille MDI est que toutes les feuilles filles se réduisent dans la feuille mère (et non dans la barre d'état), si il y a une barre de menu dans la feuille principale, elle remplacera celle des feuilles filles lorsque celles ci seront actives. Enfin, la feuille MDI ne peut contenir que des contrôles "Menu" et "PictureBox".

 

 

Les contrôles spéciaux :

 

Ces contrôles ne sont pas disponibles dans la boîte à outil par défaut. Pour les afficher, cliquez sur "composants" dans le menu contextuel "projet". La liste des composants optionnels disponibles apparaît alors. Sélectionnez le composant "Microsoft Windows Common Controls 6.0". Cliquez ensuite sur "appliquer", les contrôles optionnels apparaîtrons dans la boîte à outils standard. De nombreux autres contrôles optionnels sont disponibles de cette manière dès lors que l’on sélectionne les composants de cette liste optionnelle, la difficulté étant de connaître les composants auxquels appartiennent ces contrôles. Exemple : Le contrôle MSFexGrid (Grille de base de données) devient disponible dès lors que l'on sélectionne le composant "Microsoft FlexGrid  Control 5.0". L’utilisation des composants est expliquée dans la section "composants".

Voici un tableau récapitulatif de ces contrôles :

 

Nom
Libellé
Commentaires

ToolBar

Barre d'outils

 

StatusBar

Barre d'état

 

ProgressBar

Barre de progression

Représentation de l'état d'avancement d'une tâche

Slider

Contrôle curseur

Sélection d'une valeur par glissement

 

Il est possible de créer des menus contextuels pour vos applications Visual Basic grâce à des contrôles "Menu". Pour cela, il faut lancer le créateur de menu placé dans le menu contextuel "Outils". Le principe d’utilisation des menu est expliqué dans la section "Menu".

 

Exemple d’une fenêtre recensant les contrôles les plus fréquemment utilisés. Les noms qui sont affichés sur les contrôles correspondent au type de ces contrôles.

Exemple : Le contrôle "Label" est un contrôle de type "Label".

 

Remarques : La fenêtre "Form" est un contrôle "Form". Chaque fenêtre créée en VB est un contrôle.

La barre bleue est une ProgressBar, l’image est affichée dans un contrôle "PictureBox" et la barre verticale à droite de la fenêtre est une "VScrollBar".

 

 

 

Lors de l’édition du programme, quand vous tapez le nom de votre contrôle suivi du point, VB affiche une liste des propriétés et méthodes disponibles pour le type de votre contrôle. Les propriétés sont préfixées d’un dessin représentant une main sur une feuille et les méthodes sont préfixées d’un cylindre vert.

 

LES PROPRIETES

Les propriétés permettent de définir les caractéristiques (comme les dimensions, les couleurs …) et les états (comme actif, visible …) des contrôles. Lors de la création d’un objet, les propriétés sont renseignées avec des valeurs par défaut. Ces propriétés sont modifiables lors de l’élaboration du programme à l’aide de la fenêtre de propriété ou (pour la plupart) lors de l’exécution à l’aide d’instructions inscrites dans les procédures événementielles. Selon les types de contrôles, il existe un certain nombre de propriétés disponibles. Lors de l’édition du programme, quand vous tapez le nom de votre contrôle suivi du point, VB affiche une liste des propriétés et méthodes disponibles pour le type de votre contrôle. Les propriétés sont préfixées d’un dessin représentant une main sur une feuille et les méthodes sont préfixées d’un cylindre vert.

Voici une liste des propriétés les plus souvent rencontrées :

Nom

Libellé

Valeur

Name

Nom

Alphanumérique

Caption

Etiquette

Alphanumérique

Text

Texte

Alphanumérique

Enabled

Disponibilité

True or false

Font

Style de police

Sélection police et couleur

ForeColor

Couleur d'avant plan

couleur en hexadécimale

BackColor

Couleur d'arrière plan

couleur en hexadécimale

Visible

Visibilité

True or false

Autosize

Autoredimensionné

True or false

Value

Valeur

Alphanumérique (ex:zone texte) ou booléen (bouton d'options)

BorderStyle

Style de bordure

Liste

ToolTipText

Infos bulles

Alphanumérique

TabStop

Arrêt tabulation

True or false

TabIndex

Index de tabulation

Numérique

Picture

Nom de l'image

Alphanumérique

Attention : la propriété "Name" doit être obligatoirement renseignée en mode création et est unique dans un programme car elle sert d'identifiant au contrôle. Deux contrôles ne peuvent pas avoir le même nom (sauf si il y a création d’un groupe de contrôle, dans ce cas chaque contrôle du groupe à le même nom suivi d’un numéro unique qui est son identifiant dans le groupe). Cette propriété n’est pas modifiable en mode exécution.

Remarque : il est conseillé de nommer clairement vos contrôles afin de simplifier la clarté de votre programme. Il existe d’ailleurs une convention de dénomination standard qui consiste à préfixer le nom de votre contrôle des trois lettres correspondantes à son type.

Ex : Le préfixe du "CommandButton" est "Cmd", on le nommera donc "CmdXXXX" où  "XXXX" est le nom que vous aurez choisi (nom qui sera de préférence en rapport avec son rôle (exemple : CmdQuitter pour un bouton permettant de quitter l’application).

Voici la convention de dénomination pour les contrôles les plus utilisés :

Contrôle

Préfixe

Check Box

Chk

Combo Box

Cbo

Command Button

Cmd

Data

Dat

Form

Frm

Frame

Fra

Horizontal Scroll Bar

Hsb

Image

Img

Label

Lbl

List Box

Lst

Menu

Mnu

OLE

Ole

Option Button

Opt

Picture Box

Pic

Text Box

Txt

Timer

Tmr

Vertical Scroll Bar

Vsb

La convention de dénomination complète est disponible dans l’aide en ligne du logiciel "Visual Basic".

 

Exemple d’utilisation d’une propriété dans le code :

On a un bouton de commande (commandbutton) dont la propriété "name" est "CmdQuit".

On veut modifier son texte (ou étiquette). On modifie donc la propriété "caption" ce qui se traduit par l’instruction suivante en mode exécution :

   

CmdQuit.Caption = "Quitter"

 

 

 

LES METHODES

 

 

Dans Visual Basic, les objets peuvent avoir des comportements grâce à des fonctions qui leurs sont propres. Ces fonctions associées aux objets sont appelées "Méthode". Comme pour les propriétés, chaque type de contrôle à ses méthodes spécifiques. Contrairement aux propriétés, les méthodes ne sont évidemment disponibles qu’en mode exécution.

 

La syntaxe est la suivante : NomContrôle.NomMéthode

 

Lors de l’édition du programme, quand vous tapez le nom de votre contrôle suivi du point, VB affiche une liste des propriétés et méthodes disponibles pour le type de votre contrôle. Les propriétés sont préfixées d’un dessin représentant une main sur une feuille et les méthodes sont préfixées d’un cylindre vert.

Voici quelques exemples de méthodes :

 

Nom

Libellé

Commentaires

Additem

Ajouter Ligne

Dans une liste ou liste déroulante

Clear

Effacer toutes les lignes

Dans une liste ou liste déroulante

Refresh

Actualiser

 

 

 

LES EVENEMENTS

 

Visual Basic est un langage de programmation événementiel. C’est à dire que l’exécution des instructions est déclenchée lorsqu’un événement se produit. Cet événement est soit déclenché par l’utilisateur (clique sur un bouton, sélection d’une valeur dans une liste, déplacement de la souris …) ou par le programme lui même (au chargement d’une feuille, temporisation …).

 

Le principe de cette programmation est donc relativement simple. On doit se poser les deux questions suivantes :

·        par quel objet (contrôle) est exécuté la ou les instructions ?

·        Sur quel(s) événement(s) est exécutée l’instruction ?

 

Une fois la réponse au deux questions trouvée. Il suffit d’écrire la suite d’instructions dans le bon événement du bon contrôle.

Voici une liste des principaux événements :

 

Nom

Action exécutée

Load

au chargement de l'objet

Unload

au déchargement de l'objet

Click

sur clique

DblClick

sur double clique

KeyPress

sur pression d'une touche

GotFocus

sur prise de focus

LostFocus

sur perte de focus

Change

sur changement de valeur

Dans Visual Basic, tous le programme repose sur l’utilisation des procédures (sub). Les instructions déclenchées par un événement sont donc enregistrées dans une procédure dont le nom a la structure suivante :

NomDuContrôle_NomDeL’Evénement.

Ce type de procédure est appelée "procédure événementielle". Pour l’exemple qui va suivre, les instructions sont inscrites dans la procédure Sub BUTTON1_Click.

Exemple : Un clique sur un bouton permet d’afficher le message "Bonjour".

On place l’instruction : MSGBOX  ("Bonjour") dans l’événement "CLICK" du bouton "BUTTON".

Interface :

 

 

Code source :

 

 

 

LES MENUS

Visual Basic intègre un éditeur de menu. Celui ci permet de créer des menus contextuels personnalisés pour vos programmes Visual Basic. Pour le lancer, cliquez sur "Créateur de menu" dans le menu contextuel "Outils" du logiciel "Visual Basic".

Dans l'exemple ci-dessous, on crée un menu "édition" et le sous-menu "envoyer" du menu "édition".

 

 

La propriété "caption" permet de renseigner l’étiquette du menu (ex : fichier, édition, aide …). La propriété "name" permet de renseigner le nom du contrôle "Menu" permettant de l’identifier. Le seul événement disponible pour le contrôle "Menu" est "Click". Les instructions seront donc écrites dans la procédure NomContrôleMenu_Click. Les instructions seront exécutées lorsque l’utilisateur cliquera sur le menu ou le sous-menu correspondant.

 

Il est également possible de créer des sous-menus. L’opération de création est la même. Il faut juste spécifier que le menu est un sous-menu en cliquant sur le bouton flèche. Trois petits points apparaissent devant l’étiquette du menu dans la liste du créateur de menu. Cela signifie que c’est un sous menu du menu placé immédiatement au dessus dans la liste du créateur de menu.

 

Sur l’exemple ci-dessus, "Envoyer" est un sous-menu du menu "Edition".

 

Astuce : L'utilisation du caractère "&" devant une lettre, dans la propriété "caption" du menu, permet de créer un raccourci clavier sur la lettre pour actionner le menu. Le menu est actionnable en mode exécution en utilisant la combinaison de touche Alt + "lettre".

 

 
LES MODULES

Un module est un sous-programme pouvant être utilisé dans plusieurs programmes Visual Basic. Un module contient des déclarations de variables, des structures de données et des instructions au même titre qu’un programme. L’utilisation des modules dans les programmes permet d’éviter la redondance de codes. Les modules peuvent être paramétrés au même titre que les fonctions et les procédures. Un module est en fait une fonction ou une procédure (selon qu’il retourne ou non un résultat) indépendant du programme principal et pouvant être utilisé dans d’autres programmes. Puisqu’il est extérieur au programme principal, un module est sauvegardé sous la forme d’un fichier.

Il existe deux types de module :

·        Les modules standards (utilisés les plus fréquemment),

·        Les modules de classe (orientés objet).

 

Pour utiliser un module dans un programme (encore appelé projet), il faut l’ajouter à ce projet. Pour cela, il faut cliquer sur "Ajouter un module" ou "Ajouter un module de classe" (selon le type de module choisit) dans le menu contextuel "Projet". Là on a le choix entre créer un nouveau module ou ouvrir un module existant. Une fois le nouveau module sauvegardé ou le module existant ouvert, ce module est ajouté au projet et est utilisable dans tous le programme.

 

 

 

 

LES FONCTIONS INTEGREES

 

 

Comme dans tous langage de programmation, Visual Basic intègre un grand nombre de fonctions intégrées. Une fonction intégrée est écrite dans le compilateur et est donc utilisables directement sans être déclarées. Ces fonctions sont par exemple des fonctions mathématiques, des fonctions de chaînes, des fonctions systèmes ou autres. La plupart du temps elles nécessitent des paramètres d’entrées que le programmeur doit renseigner.

 

Pour connaître ces différentes fonctions, il faut ce documenter. Généralement leurs syntaxes en Visual Basic sont assez proches de celle des autres langages.

 

Voici quelques exemples :

 

Date

Renvoie la date système

Time

Renvoie l’heure système

Avg

Moyenne arithmétique d'une série de valeur

Len

Nombre de caractère d’une chaîne

Round

Renvoie l’arrondie d’une valeur fractionnaire

Rnd

Renvoie un entier aléatoire

Format

Formatage d'une expression

Lcase

Convertit une chaîne en minuscules

Ucase

Convertit une chaîne en majuscule

VbCrlf

Génère un retour chariot dans une chaîne de caractères

StrComp

Compare une chaîne à une autre

 

 

LES FONCTIONS GRAPHIQUES

 

 Il existe deux types de fonctions graphiques :

 

·        MsgBox : Permet d'afficher un message dans une boîte de dialogue,

·        InputBox : Permet de saisir une valeur dans une boîte de dialogue.

 

 

 

La MsgBox

 

Syntaxe : MsgBox "Message", Type du bouton, "Libellé de la boîte de message"

Différents types de boutons sont disponibles, les plus courants sont VBOkOnly (bouton "OK") et VBYesNo (bouton "Yes" et bouton "No").

Remarque : si on utilise l’option VBYesNo, on peut faire exécuter telle ou telle instruction en fonction du bouton cliqué par l’utilisateur.

 

Exemple : Dans le code suivant : "message" est le nom de la boîte de message, si l’utilisateur clique sur "Ok" alors il y a un bip.

 

message = MsgBox("Voulez vous quitter l'application ?", vbYesNo, "VB generator")

If message = vbYes Then Beep

 

Donne la boîte de dialogue suivante :

 

 

 

 

 

L’ InputBox

 

Syntaxe : NomVariable = InputBox("Message de l’InputBox", "Titre de l’InputBox")

Le texte qui sera saisit par l’utilisateur dans l’InputBox sera placé dans la variable "NomVariable".

 

Exemple : Dans le code suivant le texte "VB Generator" saisit par l’utilisateur est placé dans la variable "var" et sera donc utilisable pour un traitement par le programme.

var = InputBox("Entrer votre nom", "VB Generator")

 

Donne la boîte de dialogue suivante :

 

 

 

 

 

LES CARACTERES SPECIAUX

 

 

En VB, certains caractères ont une signification particulière :

 

' : permet d’écrire des commentaires, tous ce qui est écrit derrière l’apostrophe et jusque la fin de la ligne est considéré comme commentaire et est donc ignoré par le compilateur. Toute la ligne de commentaire s’affiche alors en vert.

Exemple : 'Ceci est une ligne de commentaire

 

_ : permet d’écrire une instruction sur plusieurs lignes. En VB, une instruction est écrite sur une ligne, lorsque l’on passe sur la ligne suivante le compilateur attend une nouvelle instruction. Cependant, lorsque l’instruction est longue, pour la clarté du programme, il est intéressant de l’écrire sur deux lignes grâce au caractère "_". Le caractère se place à l’endroit où l’on veut couper l’instruction et doit être précédé d’un espace. La seconde ligne sera interprétée par le compilateur comme la suite de l’instruction de la ligne précédente.

Exemple :         MsgBox "Bonjour les internautes" _

, vbOKOnly, "VB Generator"

Attention, on ne peut pas couper une ligne au milieu d’une chaîne de caractères ou d’un mot clé.

 

& : utilisé dans la propriété “caption” des boutons de commande ou du menu, il permet de créer un raccourci clavier pour actionner le bouton de commande ou le menu. Cette fonctionnalité est utilisable en mode "éxécution" et en mode "conception". Exemple : on crée un bouton "quitter" dont la propriété "Caption" est "&Quitter". Le bouton s’affiche de cette manière :

 

 

 

De cette manière, le bouton "Quitter" est actionnable en utilisant la combinaison de touche Alt + Q.

 

& + code hexadécimale : permet d’annoncer que le code qui va suivre est de l’hexadécimal, il est très utilisé pour la spécification des couleurs dans le code.

Exemple : Le code suivant permet de changer la couleur de fond de la Form en bleu.

Form1.BackColor = &H8000000D.

 

& : est aussi l’opérateur de concaténation.

 

"" : Chaîne vide = aucun caractère.

 

< ; > : Inférieur, supérieur.

 

=    Affectation, égalité.               

 

( ) : Parenthèses arithmétiques et alphanumériques (utilisées par exemple pour spécifier les paramètres d’une fonction, d’une procédure ou d’un module).

 

1, 0 : Signifie Vrai, Faux dans une instruction booléen.

Exemple : Check est une case à cocher, l’expression suivante :

Check value = 1    signifie que la case est cochée, car 1 = "True" = "Vrai"

 

+ ; - ; * ; / : Opérateurs arithmétiques. Dans l’ordre : plus, moins, multiplier et diviser.

 

<> : Signifie "différent de".

 

![ ] : Utilisé pour encadrer les champs en base de données (voir dans la section accès aux données).

Exemple : "RstChargement" est le nom du jeu d’enregistrement,

     "REUN_LIB" est le nom du champs.

L’accès au champs s’effectue grâce à la syntaxe suivante : RstChargement![REUN_LIB] où bien par

RstChargement("REUN_LIB")

 

VbCrlf : fonction qui génère un retour chariot, c'est à dire un retour à la ligne dans une chaîne de caractères.

 

 

 

             

 

 

   

 

          ©Copyright Webmaster 2002