Professional Documents
Culture Documents
1. Généralités:
Le langage VB est utilisé pour effectuer les traitements sollicités, en principe, à partir de l'interface.
Nous présentons dans cette partie l'essentiel du langage qui permet de réaliser les applications attendues.
- Ce sont des fichiers où l'on mettra en place du code (déclarations, procédures, fonctions) qui pourra
être sollicité par tous les autres fichiers (feuilles ou modules)
- Ces fichiers portent extension BAS (*.BAS)
1- Contrôle image (PictureBox): pour afficher une image, servir comme cadre à d'autres contrôles.
2- Etiquette (Label): affichage d'un texte (pas de saisie)
3- Champ de saisie (TextBox): affichage et saisie de texte (possibilité sur plusieurs lignes: taille 64 ko).
4- Cadre (Frame): moyen de regroupement d'autres contrôles (boutons à options) ou besoin d'esthétique.
5- Bouton de commande (CommandButton): moyen pour solliciter un traitement par un click par exemple.
6- Case à cocher (CheckBox): moyen de saisie d'une option du type binaire (oui/non).
7- Liste combinée (ComboBox): liste simple munie d'un champ de saisie.
8- Liste simple (ListBox): affichage d'une liste d'éléments avec possibilité de choix d'un élément (ou plusieurs).
9- Barres de défilement horizontale (HScrollBar).
10- Barres de défilement verticale (VScrollBar).
11- Minuterie (Timer): non visible lors de l'exécution. Cela permet de générer périodiquement un événement
(qui déclenche un traitement).
12- Liste d'unités (DriveListBox): liste et choix d'une unité disque.
13- Liste de répertoire (DirListBox): choix d'un répertoire dans une unité disque.
14- Liste de fichiers (FileListBox): choix d'un fichier dans un répertoire.
15- Forme (Schape): dessin d'une forme (rectangle, carré, coin arrondi ou non, cercle ou ellipse).
16- Ligne (Line): dessin d'un segment de droite.
17- Dessin (Image): forme simplifié de l'image. Elle est utilisée pour permettre la modification des dimensions
d'une bitmap.
18- Contrôle "données" (Data): accès aux bases de données
19- Client OLE (OLE): incorporation d'objet provenant d'autres applications.
20- Grille (Grid): affichage en tableau du type Tableur.
21- Boîte de dialogue communes (CommonDialog): appel des boîtes de dialogues standards de Windows.
D'autres contrôles pourront être ajoutés (ou retirés). Ce sont les contrôles personnalisés (extension *.VBX (16
bits) ou OCX (16 ou 32 bits).
3. Les variables:
- Les noms de variables suivent les conventions classiques (1er lettre alphabétique,...).
- La longueur peut aller jusqu'à 255 caractères.
Dim tab( )
Portée locale: emploi de Dim, Private, Static (Dim et Private sont équivalents)
Aspect local:
+ Procédure ou fonction
+ Feuille
Portée globale: emploi de Public dans la section déclaration d'un module.
- Opérateur de comparaison:
= <> < <= > >=
- Connecteurs logiques:
And, Or et Not
E)- GoTo
Pour faire référence à une étiquette.
GoTo étiquette
G.3)- Do.....Loop
Forme 2 Do
.....
[Exit Do]
Loop [{While | Until} Condition
' Exemple
Sub SOMME(S As Integer, N As Integer)
Dim I As Integer
S=0
For I=1 to N
S=S+I
Next
End Sub
' Exemple
Function SOMME (N As Integer) As Integer
Dim I As Integer, S As Integer
S=0
For I=1 To N
S=S+I
Next
SOMME=S
End Function
Appel:
S=SOMME(10)
Fonctions et instructions VB
Les opérateurs
- Arithmétiques:
+ - * (addition, soustraction, multiplication)
/ (division en virgule flottante)
\ (division entière)
- Opérateurs de comparaison:
< <= > >= = <>
- Opérateurs logiques:
Not And Or Xor
- Opérateurs chaînes de caractères:
& : concaténation ("A" & "B" "AB")
on peut utiliser + "A"+"B" "AB"
Like : comparaison au sens d'un masque.
"A*" : toute chaîne commençant par A
"A?B*": toute chaîne commençant par A et dont le 3eme lettre est un B.
Les fonctions:
- Asc : Asc("A") 65 Asc("AX") 65
- chr : Chr(65) "A" (Code ANSI : 0 - 255)
- Val : Val("11 Rue 205") 11
- Str : Str(12) "12"
- IsNumeric : IsNumeric(variant) (vrai : numérique)
- IsEMpty : IsEmpty(variant) (vrai : non initialisé)
- IsNull : IsNull(variant) ( vrai : c'est Null)
- IsArray : IsArray(var) (vrai : var est un tableau)
- IsMissing : IsMissing(argument) (vrai : argument non fourni)
- VarType : VarType(variant) type du variant
Loop
Ce programme affiche dans l'objet "Liste" tous les fichiers .DOC du répertoire REP_ANC. Remarquons
l'emploi de * et ? qui sont les même convention que pour Ms-DOS.
Exemple: lecture du fichier TEXT1.DOC et son affichage dans l'objet text (TEXT).
Sub LEC_AFF()
Dim Ligne As String, C As String
' Ouverture
Open "C:\TEXT1.DOC" For Input As 1
' lecture
Do While Not EOF(1)
Line Input #1 , Ligne
C=C+Ligne+Chr(13)+chr(10)
Loop
TEXT.text=C
End Sub
Sub Form_Resize()
....
End Sub
- Coordonnés et taille d'une fenêtre
- Coordonnés: celle du coin haut à gauche par rapport au coin de
l'écran.
Left et Top exprime en nombre de twips (1440 twips par pouce~567 twips par centimètre).
Exemple: Le code suivant permet d'afficher, lors de l'exécution, la feuille dans le quart haut et gauche
de l'écran.
F1.Left = 0
F1.Top = 0
F1.Width = Screen.Width/2
F1.Heigth = Screen.Heigth/2
ou (mieux)
F1.Move 0 , 0 , Screen.Width/2 , Screen.Heigth/2
3. Application multifeuilles:
- Au départ une application n'a qu'une feuille. On peut en ajouter autant que l'on voudra. On procédera
de la façon suivante:
+ Cliquer sur l'icône nouvelle feuille de la barre d'outils
+ ou sélectionner au niveau menu Insertion/Feuille.
- Chaque feuille ajoutée on lui associe les propriétés voulues en sollicitant la fenêtre des propriétés (F4).
Les Contrôles
1. Definition:
- C’est un objet élémentaire utilisé pour réaliser une interaction avec l’utilisateur (affichage, saisie).
- Un contrôle est obligatoirement placé sur une fauille.
- Un contrôle et caractérisé par des proprietés (couleur, texte affiché, ...).
- On associe à un contrôle des événements qui provoquent l’exécution du code prévu.
- Un contrôle possède des méthodes qui effectuent certaines tâches particulières.
- Certains aspects sont communs à tous les contrôles, d’autres sont spécifique.
2. Types de contrôles:
Ils sont accéssibles à partir de la boîte à outils en phase de conception: champs de saisie (Textbox),;
étiquette (Label); boutons (commandButton, chekBox, OptionButton); les listes (ListBox, COmboBox,
DriveListBox, DirListBox, FileListBox); les barres de défilement (HScrollBar, VScrollBar); le cadre (Frame);
les dessins (PictureBOx, Image, Shape, Line); la minuterie (Timer); le contrôle données (Data); contrôles
personnalisés (CommonDialog, OLE, Grid); ...
3. Caracéristiques communes:
- Name : identification de l'objet (ex: MonCtl)
MonCtl.BackColor : couleur de fond du contrôle
MonCtl_click sera le nom de la procédure événement sollicité si on clique sur la contrôle.
- Caption : texte visible sur le contrôle
- Appearance : effet 3D ou non
- BackColor : couleur de fond du contrôle
- ForColor : couleur des caractères du texte de caption
- Visible : permet de cacher ou rendre visible le contrôle
- Enabled : True (le contrôle est sensible), False (le contrôle est grisé).
Si le contrôle a le focus (ce que l'on peut provoquer par la méthode Setfocus) alors il pourra recevoir des
événements qui peuvent provenir de la souris ou du clavier :
- prevenance de la souris:
Click, Dblclick, MouseDown, MouseMove, MouseUp
- prevenance du clavier:
KeyDown, KeyPress, KeyUp
- La propriété Parent renvoie sur la feuille où se trouve le contrôle. On pourra par ce biais accéder aux
propriétés de la feuille sans en connaître le nom.
Ex: MonCtl.Parent.Caption="Un titre"
- TabIndex : valeur définissant l'ordre de parcours des contrôles dans la feuille quand on sollicite la
touche tabulation (c'est intéressant pour les champs de saisie d'une forme).
- TabStop : indique que le focus ne peut pas avoir lieu par le jeu de tabulation.
6. Groupe de contrôles:
Un groupe de contrôles est un ensemble de contrôles, en nombre variable qui portent le même nom
(Name) et les mêmes procedures événements. On peut comparer le groupe à une table de contrôles où la
référence à un élément se fait moyennant un indice. Ce dernier représente pour les éléments du groupe la
proprieté Index..
6.1 Définition d'un groupe:
Il faut en phase de conception, créer un contrôle avec la propriété Index positionnée à une
valeur numérique.
D'autres éléments du groupe peuvent être crées, il suffit de donner à chacun le même nom mais une
valeur différente à la propriété Index.
6.2 Retrait d'un élément du groupe:
- Changer son nom (si d'autres existent avec le même nom)
- Remettre la proprieté Index à vide.
6.3 Procédures événement du groupe:
Si le nom des contrôles appartenant au groupe est MonCtlG alors la procédure répondant à un
click sera
Sub MonCtlG_Click(Index As Integer)
....
MonCtlG(Index).Caption="Contrôle"+Str$(Index)
....
End Sub
Cette procédure traite l'événement Click relatif au contrôle dont le numéro (valeur Index) est passé en
argument. Dans cette exemple on fait afficher sur le contrôle Contrôe1, Contrôle2, ... selon la valeur de Index.
Dans les traitements, l'accès au contrôle MonCtlG N° 9 se fait en utilisant 9 comme indice de la façon suivante :
MonCtlG(9).Caption="Un texte".
6.4 Création dynamique d'un élément de groupe:
La création pendant l'éxécution se fait par l'instruction Load comme suit:Load MonCtlG(11)
- L'index utilisé (ici 11) ne doit pas exister déjà.
- Les proprietés du contrôle ainsi crée ont les mêmes valeurs que celui crée précédement. Il faut donc
changer les proprietés qui doivent le distinguer (Caption en particulier).
6.5 Retrait dynamique d'un élément de groupe:
Le retrait d'un élément du groupe se fait par l'instruction Unload comme suit:Unload
MonCtlG(9).
Le cadre
1. Utilisation:
Le cadre (Frame) est utilisé:
- comme contenant de boutons d'options.
- pour regrouper visuellement des contrôles ayant des affinités
(aspect esthétique).
Il se présente sous forme d'un rectangle avec un texte (valeur de Caption ) écrit sur le bord supérieur.
2. Proprietés particulières:
- Caption : pour afficher un texte associé au cadre.
- BackColor, ForColor.
- FontName,....
- MousePointer.
3. Evénements:
- Click, DblClick
4. Méthodes:
- Move : déplacement du cadre
MonCadre.Move 160,170
- Refresh : force le dessin du contrôle
MonCadre.Refresh
L'étiquette
1. Utilisation:
Le contrôle étiquette (Label) est utilisé pour afficher du texte:
- Libellé de champ de saisie
- Titre, sous_titre, ...
- Messages affichés pendant l'éxécution.
2. Proprietés particulières:
- Caption: Contient le texte à afficher qui ne poura pas être modifié par l'utlisateur.
Si mon contrôle s'appelle lblCtl alors on pourra avoir:
1) lblCtl.Caption="message à afficher"
2) lblCtl.Caption="1ere ligne message"+Chr(13)+"2eme ligne message".
(- affichage sur 2 lignes: Chr(13) indique le changment de ligne.
- la hauteur du contrôle doit être suffisant pour pemettre l'affichage des deux lignes).
Remarque : Le "&" dans le texte de caption indique que la lettre suivante (B) est une touche d'accès direct (Alt-
B) qui a pour effet de mettre le focus sur le contrôle qui suit cette étiquette. La lettre après le "&" sera soulignée
pour être mise en évidence.
- Autosize : permet au conlrôle étiquette de s'adapter pour afficher tout le texte de caption.
- Alignement : permet d'aligner le texte
= VbLeftJustify (ou 0): alignement à gauche
= VbRightJustify (ou 1): alignement à droite
= Vbcenter (ou 2): texte centré
- BorderStyle: permet de mettre (ou ne pas mettre) de cadre autour du contrôle.
= VbFixedSingle (ou 1): mettre un cadre (ressemblance à un champ de saisie)
= VbBSNone (ou 0): pas decadre (defaut).
- BackStyle: permet yne écriture transparente ou opaque
= VbTransparent (ou 0): écriture sans cacher ce qui est derière le cadre de contrôle.
= VbOpaque (ou 1): le fond du contrôle est rempli avec la couleur de Backcolor.
- Visible: permet de cacher le texte ou le rendre visible (True) en fonction de situations.
- Proprietés de visualisation : FontName, FontSize,..., BackColor, ForeColor,...
3. Evénements courants:
-Click et Dblclick
- Change (à chaque modification de la valeur de Caption)
4. Méthodes courantes: Move
lblCtl.move 110, 170
fait déplacer le texte à un autre endroit.
Le champ de saisie
1. Utilisation:
Le champ de saisie est un véritable éditeur de texte. Le programme NOTPAD (éditeur de texte) fourni
avec windows est essentiellement un champ de saisie (multiligne).
On a recourt aux champs de saisie pour:
- Saisir des champs du type nom, salaire, ...(monoligne)
- Saisir des textes complets (taille<=64 Ko) (multiligne)
2. Point d'insertion:
. La saisie de ce qui est tapé au clavier se fait à partir d'un point d'insertion dans le champ (champ
contenant déjà des caractères). Ce point est matérialisé par la présence à cet endroit d'un curseur (barre verticale)
clignotant.
. On peut changer le point d'insertion en cliquant à l'endroit voulu.
. Toutes les conventions de saisie standard au niveau de Windows sont respectées (flèches de
déplacement du point d'insertion, HOME et FIN (debut et fin de ligne) Ctl-HOME et Ctl-FIN (debut et fin de
texte), SUIV et PREC, BackSpace (effacer le caractères précédent), SUPPR (effacer le caractère suivant).
3. Sélection d'une partie de texte:
3.1 Caracteristiques:
- La partie du texte selectionné se caracterise par :
+ La position du caractère de début (SelStart)
+ La longueur de la partie selectionnée (SelLength)
+ La valeur de cette partie (SelText)
Remarque: si SelLength=0 alors il y a simplement un point d'insertion à la
position SelStart
- On utilise généralement le selection pour effectuer l'echange avec le presse papier (copier, coller, ...).
3.2 Comment effectuer la selection?
3.2.1 Par l'utilisateur:
. Cliquer avant le premier caractère et faire glisser la souris jusqu'à la position voulue en
gardant le bouton enfoncé.
Ou
. Amener le curseur juste avant le 1er caractère, appuyer et garder enfoncée la touche MAJ,
déplacer le curseur (touches de déplacament) jusqu'à l'endroit voulu.
3.2.2 Par programme:
Si mon texte s'appelle MonTexte alors on aura:
MonTexte.SelStart=12 (position depart)
MonTexte.SelLength=5 (longueur)
(SelLength <= 65535 pour un système 16 bits)
Remarque: Selection de tout le texte
MonTexte.SelStart=0
MonTexte.SelLength=65535
3.3 Marque d'un texte selectionné:
- Le texte est en videoinversé
- Dès que le champ perd le focus la vidéoinversé disparait por
repparaitre lorsque le champ retrouve le focus.
- On pourra demander à VB de faire en sorte que la vidéoinversé reste même lorsque le champ
perd le focus. Cela se afit par:
MonTexte.HideSelection=False
4. Validation de la saisie:
On présentera ici les événements générés par un champ de saisie susceptible d'être exploiter pour
contrôler les données saisies.
- Keypress: est généré dès qu'on appuie sur une touche. Le code ANSI de la touche ets transmis comme
argument (le caractère n'est pas encore arrivé dans le champ).
Sub MonTexte_Keypress(CodeTouche As Integer)
End Sub
- Change: est généré lorsque le champ de saisie a traité la touche et affiché la modification
correspondante.
Sub MonTexte_Change()
End Sub
- GotFocus: est généré dès qu'on entre dans le champ (par un click ou par tabulation).
- LosFocus: est généré lorsqu'on quitte la champ (on pourra à nouveau procéder à un contrôle et
en cas d'erreur obliger le focus à rester sur le champ par emploi de SetFocus).
Exemple: Supposons un champ N° CNSS (NCNSS) qui ne doit comporter que des chiffres. Voici ce
Qu'on pourra envisager pour s'assurer de la vraissemblancede la donnée saisie.
Les Boutons
1- Utilisation
Il y a 3 types de boutons :
2- Bouton de commande
Contrairement aux autres contrôles il ne dispose pas de propriétés ForeColor et BackColor ( par défaut
c'est celle définie dans le panneau de configuration ou dans le fichier WIN.INI)
- Default:
Si True :cela veut dire que la touche ENTER est équivalente à un click si toutefois le bouton a
la focus.
- Cancel:
- Si True :cela veut dire que la touche ECSape est équivalente à un click.
2.2- Comportement
+ Si par programme on met la propriété value à true alors l’événement click est généré ( et donc
l'exécution de la procédure correspondante ).
3- La case à cocher.
On l’utilise pour la saisie d’une valeur booléenne à chaque click de l’utilisateur le bouton passe de
l’état coché à l’état non coché , et inversement .
Remarque
Il ne faut pas confondre l'état grisé qui est une valeur particulière de l’état du bouton (3 éme état ) avec
l’état inopérant commun à beaucoup de contrôles et qui veut dire que le bouton ne peut pas être sollicité par
l’utilisateur.
3.1 Comportement
A chaque changement de la propriété Value un événement click est généré. On pourra l’ignorer car il
est redondant avec la valeur de ne alue.
1- Le bouton d’options
Il faut donc que tous les boutons d’option soit placés dans un même contenant (généralement un cadre )
appartiennant à un même groupe .
Sub OPTG ()
Dim I As Integer
For I=0 . to 2 3 option
if OPT ( I ) . Value then
Etiq. Caption = ‘’ option ‘’ + OPT (I) . Caption
Exit for
Next end if
End Sub
LES LISTES
1- Utilisation
Les listes permettent à l’utilisateur de sélectionner un élément parmi une liste d’éléments textuels dont
le nombre peut varier en cours d’exécution.
2- Types de liste
Il y à deux types de listes générales et trois types de listes spécialisées.
Liste générales
La liste simple ( liste Box ) : C’est une liste simple d'éléments textuels.
La liste combinée ( ComboBox) : c’est l'association d’une liste simple et d’un champ de
saisie
Liste spécialisées
- La liste d’unité disques ( liste de lecteurs, Drive liste Box ) : c’est une liste spécialisée dans
l’affichage des unités disque du système (a, e: )
- La liste de répertoires ( DirlistBox ) : c’est une liste spécialisée dans l’affichage des sous
répertoires du répertoire courant.
- La liste de fichiers ( File liste Box ) : c’est une liste spécialisée dans l’affichage des fichier du
répertoire courant dans le lecteur courant.
1- Comportement
L’événement click indique la sélection d’un élément de la liste.
Dans le programme nous avons accès aux propriétés suivantes :
Liste count : indique le nombre d’élément dans la liste
Liste : représente l’équivalent d’un tableau dont les éléments sont les éléments de la liste
Liste (0 To ListeCount - 1 )
Liste Index : indique l’indice de l’élément sélectionné par le click. La valeur -1 informe qu’aucun
élément n’est sélectionné.
Texte : pour les liste simple et d »roulante, contient l’élément sélectionné.
Maliste . texte = Maliste . Liste ( Liste Index)
D’autre événements sont possibles tels que : GotFocus, LostFocus, KeyDown et KeyUp.
Exemple :
Une liste Maliste affiche une liste de noms
L’utilisateur sélectionne un nom
Puis il appuie sur le bouton de commande OK
La procédure affiche le nom sélectionné dans
L’objet étiquette etiq accompagné du nombre de personne
Etiq. Caption = Maliste . texte + Vstr$ ( Maliste . liste count ) + ou ‘’ personnes’’
Etiq. Coption = Maliste . list (Maliste . list Index ) + .......
End Sud .
1. Liste Simple.
c’est un contrôle rectangulaire contenant une liste de chaîne de caractères
Un ascenseur vertical apparaît à droite p les éléments ne peuvent pas être visibles tous à la fois
4.1 Ascenseur horizontal : Columns
On peut avoir un ascenseur horizontal pour cela il faut donner une valeur non nulle à la propriété
Columns
Columns = 0 Pas ascenseur et une seul colonne.
Columns = 1 Ascenseur et une colonne
Columns = 2 Ascenseur et deux colonnes, etc......
4.2 Sélection simple ou multiple : Multiselect
Par défaut un seul élément pourra être sélectionné à la fois . Mais il est possible de permettre la
sélection de plusieurs éléments à la fois (tous les éléments sur lesquels on clique) . pour spécifier cet aspect des
chose on positionne la propriété Multiselect comme suit :
Multiselect =
0 : Sélection simple.
1 : Sélection multiple. Chaque click sélectionne ou déselectionne l’élément.
2 : sélection étendue. On l’obtient en maintenant la touche Ctrl ou Maj lors du click pour
étendre la sélection.
4.1 Comment savoir si élément est sélectionné ?
Dans le cas ou Multiselect est égal à 1 ou 2 la propriété selected pourra être utilisé pour savoir si un
élément est sélectionné ou non.
Maliste. Liste (I) . Selected
= True : l'élément d’indice I est sélectionné.
= False : il n’est pas sélectionné.
Exemple :
Du dispose d’une liste Maliste de noms et d’un contrôle texte multiligne ( Montexte)
Les éléments sélectionnes seront affichées dans la zone texte à réunion d’un nom par ligne à la suite
du click sur le contrôle commande OK
Sub Ok_click()
Dim I As Integer
Dim RLIGNE As String
RLIGNE=Chr(13)+ Chr(10)
Montexte.text=""
For I=1 to Malist.Listcount-1
if Malist.List(I).Selected then
Montexte.text=Malist.List(I)+RLIGNE
End if
End Sub
4.4- Tri des éléments de la liste: Sorted
La propriété Sorted de la liste indique (si True) que les éléments qu'elle contient doivent être triés.
Si Sorted=True alors chaque ajout d'un éléments à la liste est inséré à sa place dans l'ordre alphabétique
croissant; à moins qu'on ait demandé à le placer explicitement à un endroit déterminé (ce qu'il faut éviter si on
utilise Sorted).
nom-Liste.AddItem élément-à-ajouter
Exemple:
' Ajout d'un nom saisie dans la zone texte NOM dans la liste Maliste à la suite ' ' d'un clic sur le bouton
de commande AJOUT
Sub AJOUT_Click()
Maliste.additem NOM.text
' le nom est ajouté à la fin de la liste si Sorted=False et l'endroit voulu si 'Sorted=True
End Sub
On peut également spécifier l'endroit où placer l'élément en terme d'indice du tableau liste:
Exemple:
Maliste.Additem "Brahim" , 2
Ou
Maliste.List(2)="Brahim"
fait placer "Brahim" à l'indice 2 de la liste dont le premier élément a pour indice 0. Il faut bien entendu
qu'au moins les éléments précédents existent.
Maliste.List(Maliste.ListCOunt)= "Brahim"
fait placer "Brahim" en fin de liste.
Remarque:
En phase de création, on peut remplir la liste en sollicitant la propriété List ce qui fait apparaître un
champ de saisie multiligne pour saisir les éléments de la liste à raison d'un élément par ligne. Le passage à la
ligne suivante se fait par:
- Clic sur la nouvelle ligne
- Ctrl+ENTREE
ENTREE seul valide la saisie effectuée.
4.6- Suppression d'un élément de la liste:
La suppression d'un élément de la liste se fait en utilisant la méthode RemoveItem:
nom-liste.RemoveItem indice-de-élément
Exemple:
Maliste.RemoveItem 2
fait disparaître de la liste l'élément d'indice 2 (le 3eme de la liste).
Exemple:
Maliste.Clear
fait nettoyer Maliste
6. Listes Spécialisées:
- Il s'agit des listes d'unités de disques, de repertoires et de fichiers.
- Ces trois listes sont généralement utilisées de façon conjointe.
- L'application ne peut pas, en principe, modifier le contenu de ces listes, en conséquences les propriétés
List et ListCount ne sont accessibles qu'en lecture.
- ListIndex peut être modifié ce qui permet le changement de la sélection.
- Elle contient la liste des fichiers d'un répertoire donné. Celui spécifié dans la propriété Path.
- Le fichier sélectionné se trouve dans FileName (chemin complet)
- FileName pourra être modifié pour spécifier une nouvelle unité disque, un nouveau répertoire ou un
nouveau fichier sélectionné. Ce changement peut générer les événements:
- PathChange
- PatternChange
- DblClick
- La propriété Pattern permet de spécifier les fichiers à afficher par emploi d'un masque (utilisation
conventionnelle de * et ?)
Fichier.Path="C:\VB"
Fichier.Pattern="*.EXE ; *.COM ; *.BAT"
affichages des fichiers du répertoire VB des fichiers type EXE, COM ou BAT
- Autres propriétés booléennes jouant le rôle de filtre avant l'affichage
- Archive : fichier archive
- Hidden : fichiers cachés
- Normal : fichiers normaux
- ReadOnly : fichiers accessibles en lecture seule
- System : fichiers systèmes
- Si on modifie la propriété Path ou FileName un événement PathChange est généré.
- Si on modifie Pattern ou FilName (modèle de fichier) un événement PatternChange est généré.
- Une liste de fichier peut être à sélection multiple il suffit de spécifier la valeur de MultiSelected
Exemple:
On utilise les listes suivantes:
Unité : DriveListBox (unités disque)
Repertoire : DirListBox (repertoires)
Fichier : FileListBox (fichiers)
Le lien à faire entre les trois listes peut se faire comme suit:
Sub Unité_Change()
Repertoire.Path=Unité.Drive
End Sub
Sub Reprtoire_Change()
Fichier.FileName=Repertoire..Path
End Sub
Sub Fichier_Click()
' le fichier selectionné est identifié par
' Fichier.Path +"\" + Fichier.FileName
End Sub
EMPLOI DES MENUS
1. Considérations générales
Il n’est pas nécessaire de justifier l’emploi des menus. Pour s’en convaincre il suffit de considérer les
applications sous Windows pour constater que les menus sont présents partout ; même si cela fait parfois double
emploi avec des boutons de commandes pour faciliter l’accès à des fonctionnalités fréquemment demandées.
La fenêtre principale des applications possède en général une barre de menu. La sélection d’un élément
de menu fait normalement apparaître un sous menu déroulant; qui peut conduire de nouveau à un autre sous
menu jusqu’à atteindre l’élément final qui correspond à la fonctionnalité recherchée ( cela génère un événement
du type Clic ( NomMenu_Click() ) qui sera utilisé pour mettre en oeuvre le traitement adéquat )
Chaque élément du menu reçoit un nom qui génère lorsqu’il est sollicité un événement Click. Si ce n’est
pas un élément final cela peut être utilisé pour faire éventuellement un traitement adéquat ( initialisation du sous
menu comte tenu du contexte de l’application ) avant de faire dérouler le sous menu.
Cela fera afficher la fenêtre ‘Créateur de menus’ qui comprend en particulier les éléments suivants :
+ Un champ Caption : où l’on saisira le libellé de l’élément de menu courant qu’on est en train de traîter
( c’est l’équivalent de Caption de la plus part des Contrôles de VB)
Le signe ‘&’ dans le libellé signifie que la lettre qui suit représente une touche d’accès et apparaîtra
soulignée dans le menu.L’accès se fera en utilisant la combinaison de cette lettre avec la touche ALT ( par
exemple : &Fichier sera sollicité au niveau du clavier par ALT + F )
+ Un champ Name : où l’on saisira le nom de l’élément de menu courant qu’on est en train de traiter.
C’est l’équivalent de Name des Contrôles de VB; cela suit en conséquence les mêmes règles de
formation. Pour les distinguer on convient généralement de donner des noms qui commence par mnu ( pour
suggérer qu’il s’agit d’un élément de menu )
+ La liste Shortcut ( raccourci) autorise le choix d’une combinaison de touches dont l’action est
équivalente à la sélection de l’élément ( Exemple MAJ+ F12 )
+ Checked ( faux par défaut ) permet d’ajouter une marque devant l’élément pour indiquer qu’il est
sélectionné.
+ Enabled ( vrai par défaut ) permet de rendre l’élément grisé en vue d’interdire sa sélection
+ Visible ( vrai par défaut ) permet de rendre l’élément invisible. Dans ce cas, le menu est redessiné
complètement pour faire disparaitre complètement la trace de cette élément. Il réapparaîtra dès que la propriété
Visible devient Vrai.
Pour passer à l’élément suivant du menu, qui peut être horizontal ( menu ) ou vertical ( sous menu ) On
peut :
Pour indiquer que l’élément fait partie d’un menu ou d’un sous menu déterminé on utilisera les boutons
suivants :
Le principe de création de sous menus est le décalage de l’écriture des éléments (décalage de 4
espaces )
Les boutons Insérer et supprimer permettront d’insérer n’importe où un nouvel élément de menu et de
supprimer tout élément préalablement sélectionné.
Fonctions API
VB est doté d’une puissante caractéristique : la possibilité d’appeler des fonctions qui résident dans les
bibliothèques de liens dynamiques (DLL), et en particulier les fonctions API fournies par windows.
Pour utiliser les fonctions API, il suffit de les déclarer dans le code source puis de les appeler comme
n’importe quelle autre fonction de VB.
On peut accéder aux déclarations de fonctions API de VB dans le fichier Win32API.txt, qui existe dans
le dossier winapi.
Option explicit
Private Type SYSTEM_INFO
DwOemID As Long
DwPageSize As Long
LpMinimumApplicationAdress As Long
LpMaximumApplicationAdress As Long
dwActiveProcessorMask As Long
dwNumberOfProcessors As Long
dwProcessorType As Long
dwAllocationGranularity As Long
dwReserved As Long
End Type