Eléments de VB

Transcription

Eléments de VB
IEPSCF Uccle
Section informatique
Langage orienté objet
Notes personnelles
2002
Feyaerts Prod
TABLE DES MATIERE
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
Controles les plus courants.................................................................................................... 5
Classe, objet, attribut (propriété), méthode et évenement......................................................... 6
Quelques propriétés communes aux objets............................................................................. 6
Les variables ........................................................................................................................ 7
Type de variables et espace mémoire..................................................................................... 7
Déclaration ........................................................................................................................... 8
Domaine de validité. .............................................................................................................. 8
Manipulation de variables ...................................................................................................... 8
Les constantes ...................................................................................................................... 9
Constantes symboliques ........................................................................................................ 9
Constantes prédéfinies de VB ................................................................................................ 9
Les opérateurs ...................................................................................................................... 9
Arithmétiques ........................................................................................................................ 9
De comparaison .................................................................................................................... 9
Logiques ..............................................................................................................................10
De concaténation .................................................................................................................10
Les fonctions .......................................................................................................................10
Mathématiques ....................................................................................................................10
De manipulation de chaines ..................................................................................................10
De conversion ......................................................................................................................11
De date ...............................................................................................................................11
Fonctions particulières ..........................................................................................................12
Les structures de contrôles If end if, if else end if,if, else if, else endif, select case....................14
les boucles ..........................................................................................................................15
le Do Loop While..................................................................................................................15
Le do while Loop..................................................................................................................15
Le For Next..........................................................................................................................15
Sortie de la boucle................................................................................................................16
Boucles imbriquées ..............................................................................................................16
Les groupes de controles ......................................................................................................16
Création de groupes de contrôle ...........................................................................................16
Les procédures ....................................................................................................................17
Les procédures Sub .............................................................................................................17
Procedure Function ..............................................................................................................18
Transmission d'argument ......................................................................................................19
Les tableaux ........................................................................................................................20
Tableaux statiques ...............................................................................................................20
Tableaux Dynamiques ..........................................................................................................20
Vider un tableau ...................................................................................................................20
Accès aux données d'un tableau ...........................................................................................20
Les bases de données..........................................................................................................21
Relier la bibliothèque ADO au projet ......................................................................................21
Déclarer trois variables pour relier le projet à la DB ................................................................21
Etablir la connexion ..............................................................................................................21
Initialiser les propriétés ActiveConnection et CommandText....................................................21
Configurer et ouvrir le Recordset ...........................................................................................21
Méthodes et propriétés de l’objet Recordset ..........................................................................22
Exemples ............................................................................................................................22
La poo.................................................................................................................................23
Quelques notions de base ....................................................................................................23
Personnalisation d'Objets .....................................................................................................24
Création d'un module de classe.............................................................................................24
Création des données internes ..............................................................................................24
Création des propriétes ........................................................................................................24
Création des méthodes .........................................................................................................25
Création d'évenements .........................................................................................................26
Notion de constructeur et de destructeur................................................................................26
Instanciation d'objets ............................................................................................................26
L'hérttage en VB ..................................................................................................................26
Langage orienté objet VB
- page 2
Feyaerts Prod
17.
Un exemple .........................................................................................................................27
Un exemple d'héritage. .........................................................................................................28
Les contrôles en détail..........................................................................................................30
Les feuilles ..........................................................................................................................30
Les boutons de commande ...................................................................................................31
Les étiquettes ......................................................................................................................31
Zone de texte.......................................................................................................................32
Frame ou cadre....................................................................................................................32
Boutons à option ..................................................................................................................33
Case à cocher......................................................................................................................33
Timer...................................................................................................................................33
Slider Microsoft windows Common Controls 6.0 ...........................................................................34
Image ..................................................................................................................................34
Datetime Picker Microsoft Windows Common Controls - 2 6 0 ................................................34
Listbox = Zone de liste modifiable.........................................................................................35
Combobox Allie la zone de liste modifiable à la zone de texte .................................................35
Langage orienté objet VB
- page 3
Feyaerts Prod
Avant tout
Vérifier Outils à Option à
Éditeur
- Cocher "Requiert la déclaration des variables" pour forcer
"option explicit"
- Tabulation : 2
Environnement : Invite d'enregistrement des modifications.
A la première sauvegarde penser à donner un nom évocateur à la feuille puis au projet
Sauvegarder d'abord la feuille puis le projet (par défaut)
Si le projet comporte plusieurs feuilles, la commande "sauvegarder" les sauvegarde toutes
Par souci de rapidité on peut copier les objets créés ; une fenêtre pop up demande si l'on veut
créer un groupe de contrôle Répondre "NON".
En VB Il n'y a pas de signe de fin de phrase comme en Cobol (.) ou en C(;)
Les fichiers
−
Fichiers feuilles portent l'extension. frm. Ce sont des fichiers texte.
Ils contiennent toutes les indications nécessaires à l'affichage de la
feuille, des objets qui s'y trouvent et le code qui lui est attaché.
−
Fichiers projet portent l'extension. vbp C'est aussi un fichier texte il
indique tout ce qui est nécessaire à l'application notamment où trouver
les fichiers qui la constituent.
−
Fichiers classe portent l'extension. cls Ne sont créés que si le projet inclus des classes.
Comportent les informations sur les classes.
−
Fichiers images portent l'extension. frx. Ce ne sont pas des fichiers texte. Ils contiennent des
informations concernant les images ou les icônes si le projet en comporte.
−
Il existe aussi de fichiers textes qui portent l'extension. vbw qui sont créés lors d'une réparation
d'erreur.
−
les fichiers log explique une erreur lors du chargement du fichier. frm Par exemple s'il manque
un fichier frx auquel fait référence.
Création d'une application
1.
Création de l'interface
2.
Définition des propriétés des objets
3.
Écriture du code
Création d'une procédure
4.
Afficher le code > Outils > Ajouter une procédure.
5.
La nommer choisir privé / public(défaut)
6.
Écrire le code.
Modification d'une propriété
dans le code : nomObjet.propriété = nouvelle valeur
Attribution d'une méthode
dans le code : nomObjet.methode [arguments]
Messages d'erreur
Erreur de compilation
Cet argument n'est pas facultatif
Surligne en jaune la ligne précédant l'erreur essayer des guillemets
Attendu : séparateur de liste ou )
On a oublié un second argument ou de fermer la parenthèse d'une fonction
Langage orienté objet VB
- page 4
Feyaerts Prod
1. CONTROLES LES PLUS COURANTS
Icône
Objet
Classe
Préfixe
Qq Propriétés
Valeurs
Feuille
form
frm
Name
Caption
BackColor
StartupPosition
"frmNom"
"Intitulé" apparaît dans la barre de titre.
Couleur du formulaire
0 man, 1 center
Etiquette
Label
lbl
Name
lblNom
Texte non modifiable par U
"intitulé"
0=Left, 1=Right, 3=center
true / false pratique
Caption
Alignment
AutoSize
Zone de texte
TextBox
txt
Name
Text
Alignment
Locked
PasswordChar
MultiLine
Cancel
Bouton
commande
de CommandButton cmd
Name
Caption
Style
Picture
cadre
Frame
fra
Name
"txtNom"
Texte modifiable par U
"texte"
0=Left, 1=Right, 3=center
true / false
"*" pour masquer une entrée.
true / false
true / false
"cmdNom"
Pour exécuter une commande
"intitulé"
0 = standard 1 = graphical permet les
couleur les dessins
c:\program Files\microsoft visual Basic6
\common\Graphics
fraNom
Sert à faire joli
Sert à regrouper des btn à option.
Boutton
option
à Option
opt
button
Name
Caption
value
Style
Picture
DownPicture
Case à cocher CheckBox
chk
Name
Caption
value
Zone de liste
ListBox
lst
Name
Style
Colomns
MultiSelect
Liste
Itemdata
Zone de liste ComboBox
modifiable
cmb
Name
Style
Locked
Liste
Timer
Timer
tim
Name
Visible
Enable
Interval
Langage orienté objet VB
- page 5
"optNom"
Propose un choix pas de choix multiples
"intitulé"
true = coché
0 = classique, 1 =graphical permet
d'insérer image
insère image en mode graphical
Image si coché en mode graphical
"chkNom"
Propose un choix multiple possible.
"intitulé"
0= uncheched 1 = coché
"lstNom"
Affiche liste d'éléments permet sélection
unique ou multiple.
0 = Standard 1 = chk box
0 = une colonne
0 non, 1 un à un , 3 un à un avec ctrl
intervalle avec shift
"donnée1", "donnée2", etc
N° d'ordre pour chaque donnée.
"cmbNom"
Affiche liste Permet sélection Permet
ajout d'un élément.
0= dropdown combo, 1 =Simple combo,
2=dropdown liste
true / false
"donnée1", "donnée2", etc
"timNom"
Sert à déclancher un évèmement toutes
les n millisecondes
toujours false
true / false
nb en millisec
Feyaerts Prod
2. CLASSE, OBJET, ATTRIBUT (propriété), MÉTHODE ET ÉVENEMENT
Classe :
C'est un modèle d'objet. C'est la définition formelle de ce que vont être les objets,
c'est à dire l'ensemble de leurs propriétés, méthodes et évènements.
Objet :
C'est une instance d'une classe. Les objets sont créés sur base de la définition d'une
classe en attribuant des valeurs à ses propriétés par exemple.
Propriétés :
Ce sont les caractéristiques des objets Les objets ont des propriétés qui définissent
leur apparence, leur nom
Méthode :
Les méthodes définissent les comportements des objets.
Évènement : Ils traduisent les réactions d'un objet (contrôle) qu'il reconnaîtra et auquel il peut
réagir.
En VB on crée un objet quand on le dépose sur une feuille (la feuille est elle aussi un objet)
Chaque objet : est une instance d'une classe
a des propriétés qui définissent son nom, son apparence,
a des méthodes qui définissent ce qu'il fait.
réagit à certain évènements
Exemple :
txtMessage. text
= "Bonjour"
propriété
valeur de la propriété text
objet
txtMessage. setfocus
méthode
objet
En VB dès que l'on tape un nom d'objet suivi d'un point dans le code une fenêtre pop up propose
une liste de méthode (en vert) et de propriétés (feuille avec main)
utilisables pour l'objet en question. On peut aussi utiliser les boutons Menu Édition > Compléter le
mot ou ctrl + <space>.
Dans le même ordre d'idées on a
Méthode
Propriétés
Constantes
Types
Valeurs
3. QUELQUES PROPRIÉTÉS COMMUNES AUX OBJETS
Name
nom de l'objet devrait toujours commencer par le préfixe
Top
Left
Height
Whidth
Caption
BackColor
ForceColor
Font
texte qui accompagne l'objet par défaut = le nom l'objet
couleur d'arrière plan*
couleur d'avant plan*
police d'affichage
Langage orienté objet VB
- page 6
Feyaerts Prod
Visible
Enable
TabIndex
Index
ToolTipText
booléenne visible si =True
booléenne disponible si =True ; grisé si = False
définit l'ordre du focus donné par la touche tab (ordre de création=défaut)
Numéro identifiant dans un groupe de contrôle
Texte de l'infobulle
4. LES VARIABLES
T YPE DE VARIABLES ET ESPACE MÉMOIRE
Nom
préfixe
Boolean
Integer
Long
Single
Double
Currency
Decimal
String
Byte
Date
Variant
bln
int
lng
sng
dbl
cur
str
byt
dtm
vnt
domaine de validité
%
&
!
#
@
11
2
3
4
5
6
$ 8
True / False
-32.768 à 32.767
+/-2.147.483.648
Réel 6 chiffres après la virgule
Réel 14 chiffres après la virgule
Réel 4 chiffres après la virgule
"Chaîne de car "
17
7 # expression date#
12
nbOctets
2
8
2
32
2
32
2
64
2
64
2
2
2
4
4
8
8
12
>10
1
8
16
Remarques
Dim intNb As Integer équivaut à Dim intNb%
On peut limiter la longueur d'une variable string Dim strNom As String * 30
Le type variant est particulièrement gourmand en espace mémoire et doit donc être évité. Il est
pourtant automatiquement attribué par VB si on oublie de déclarer le type de la variable.
Rester maître des décimales
Les résultats de divisions s'affichent sans virgule avec int et long mais respectivement avec 4,
6 et 14 chiffres derrière la virgule si les résultats sont déclarés en currency, single, ou double
Attention ! Lors de la saisie de nombres dans les textbox la fonction Val() convertit toujours le
nombre en double (14 décimales)
Dim res As Integer
Private Sub CmdCalculer_Click()
res = Val(txtnb1.Text) / Val(txtnb2.Text)
txtres.Text = res
End Sub
Affiche un résultat sans décimale, mais affiche 4 décimales si res est déclaré as currency
Alors que
Private Sub CmdCalculer_Click()
txtres.Text = Val(txtnb1.Text) / Val(txtnb2.Text)
End Sub
Affiche le résultat avec 14 décimales
Pour limiter le nombre de décimales
Voir la fonction round(expression, nb de ch après la virgule)
Formater les nombres Voir la fonction format(expression, "masque")
Le masque précise la position des espaces par une virgule ou un espace et la position de la virgule
par un point.
Langage orienté objet VB
- page 7
Feyaerts Prod
DÉCLARATION
Le nom des variables
est constitué d'un maximum de 255 caractères
commence toujours par une lettre
peut contenir des majuscules ou pas
Peut contenir de nombres mais pas de ","ni d' -, d'espace.
Elles ont un nom unique dans leur domaine de validité.
DOMAINE DE VALIDITÉ.
Locale
Variable déclarée dans une procédure, n'est connue que dans cette procédure
Private sub cmdTrucmuch_Click()
Dim nomvar As Typvar
ou
Private nomvar As Typvar
End Sub
L'utilisation de variables locales doit être privilégiée car elle allège l'espace mémoire en cour
d'exécution de l'application.
La durée de vie d'une variable déclarée en local peut être élargie à la durée de vie de l'application
par l'instruction Static
Globale privée
Variable déclarée à l'extérieur des procédures. Elle est connue de toutes les procédures du
module et ne survit pas à celui-ci n'est connue que dans le module mais pas dans toute
l'application si celle-ci en contient plusieurs.
Option Explicit
Dim a As Typvar
Private a As Typvar
...
ou
Globale Publique
Variable déclarée à l'extérieur des procédures. Elle est connue de toutes les procédures et de tous
les modules de l'application.
Option Explicit
Public z As Typvar
...
Remarque
En VB il faut déclarer séparément les variables.
Dim a As Integer
Dim b As Integer
ou à la rigueur Dim a As Integer, b As Integer
Mais pas Dim a, b As Integer dans ce cas a serait variant
M ANIPULATION DE VARIABLES
VarType(nomvar) identifie le type de la variable renvoie une valeur identifiant le type de la
variable. (voir tableau plus haut
IsNumeric(expression) Vérifie que l'expression passée en argument est bien numérique et
renvoie true si c'est le cas. L'expression peut être une variable ou l'attribut text d'une textbox.
Cette fonction est très couramment utilisée pour forcer la saisie de nombres.
If IsNumeric(txtSaisie.text) then
faisons ceci
Else msgbox "vous devez saisir des nombres!!"
Existent aussi
IsEmpty(), IsDate(), IsArray(), IsNull()
Langage orienté objet VB
- page 8
Feyaerts Prod
5. LES CONSTANTES
Définition :
Ce sont des valeurs définies qui ne peuvent être modifiées lors de l'exécution d'une application.
Elles peuvent être des valeurs numériques ou des chaînes de caractères. Il y a deux types de
constantes : les symboliques et les prédéfinies.
Elles sont toujours Globales
CONSTANTES SYMBOLIQUES
Elles sont définies par le programmeur grâce à l'instruction Const
Const Pi = 3,1416
Const message = "Vous êtes génial !!"
Exemple :
CONSTANTES PRÉDÉFINIES DE VB
Leur nom commence toujours par Vbqqchose
Elles ont pour la plupart un équivalent numérique.,
vbCrLf
caractère de retour
vbOKonly
vbBlack
vbOKCancel
vbRed
vbGreen
etc
vbOK
vbYellow
1
vbCancel
vbBlue
2
vbAbort
vbMagenta
3
vbRetry
vbCyan
4
vbIgnore
vbWhite
5
vbYes
6
vbNO
7
&H0&
0
&HFF&
&HFF00&
255
65280
&HFFFF&
65535
&HFF0000 16711680
&HFF00FF 16711935
&HFFFF00 16776960
&HFFFFFF 16777215
6. LES OPÉRATEURS
ARITHMÉTIQUES
+
,
Rmq
- , * , / , \ , ^, mod
/ = division normale
\ = division entière (sans reste)
mod = modulo = reste.
DE COMPARAISON
>
,
<
,
Exemple
>=
,
<=
Dim
Dim
s =
b =
b as Boolean
A as String
“c d e a b i”
s Like “* a b *”
,
<>
,
=
, like
à b = true
like est un peu particulier il s'écrit comme suit :
Résultat = chaîne de car Like "modèle".
et renvoie true si le modèle se retrouve dans la chaîne de caractère
Rmq ne pas oublier les caractères génériques ? et *
Langage orienté objet VB
- page 9
Feyaerts Prod
LOGIQUES
Not and, or xor (ou exclusif)
Table de vérité
A
B
Or
Xor
and
T
T
F
F
T
F
T
F
T
T
T
F
F
T
T
F
T
F
F
F
DE CONCATENATION
& ou +
mais de préférence
& car + peut prêter à confusion.
7. LES FONCTIONS
M ATHÉMATIQUES
Abs(var)
Cos(var)
Sin(var)
Tan(var)
Sqr(var)
Exp(var)
Round(var, nb de décimale)
Randomize
Rn
Log(var)
DE MANIPULATION DE CHAINES
Instr(cible,"string")
Len("string")
Left("string",nb)
Right("string",nb)
Mid("string",nb)
LCase("string")
UCase("string")
LTrim("string")
RTrim("string")
Trim("string")
Strcomp(string,string)
InstrRev
Join
split
StrReverse("string")
Langage orienté objet VB
Renvoie valeur absolue
Renvoie le cosinus
Renvoie le sinus
Renvoie le tangente
Renvoie la racine carrée
Renvoie e à la puissance var
Renvoie var arrondi avec nb décimales
À placer dans le "form load"
Rnd renvoie un nombre aléatoire.
Renvoie Ln var
renvoie la position de la chaîne string dans la chaîne cible
renvoie le nombre de caractères d'une chaîne
renvoie les nb premiers caractères de la chaîne string
renvoie les nb derniers caractères de la chaîne string
ième
renvoie les caractères depuis le nb
renvoie la chaîne string en minuscule
renvoie la chaîne string en majuscule
caractère
supprime les espaces à gauche de la chaîne
supprime les espaces à droite de la chaîne
supprime les espaces à droite de la chaîne
Renvoie 0 si les 2 chaînes sont identiques
Renvoie la chaîne à l'envers
- page 10
Feyaerts Prod
DE CONVERSION
De Type de variable
Attention au domaine de validité
CBool()
CDate
CInt
CDec
CSng
CDbl
CLong
CStr
Convertit en booléenne
Convertit en Integer
Convertit en Single
Convertit en Double
Convertit en Long
En String
De genre
Val(string)
Str(nombre)
Asc(string)
Chr(nb<256)
Hex(nb)
Oct(nb)
Chaîne en nombre (long)
Nombre en chaîne
Convertit 1er car en sa valeur ascii
Convertit en caractère
Renvoie valeur en Hexadécimal
Renvoie la valeur en base huit
DE DATE
Date
Renvoie la date système
(6/11/02)
Day(date)
Renvoie le n° du jour dans la date
(23 si 23/02/02)
Month(date)
Renvoie le n° du mois dans la date
(02 si 23/02/02)
Year(date)
Renvoie le n° de l'année dans la date (2002 si 23/02/02)
MonthName(N°)
Renvoie le nom du mois
mois.Text = MonthName(Month(Date)) renvoie en texte le nom du mois courant
Weekday(date)
Renvoie le N° du jour dans la semaine 1 = lundi
WeekDayName
Renvoie le nom du jour
jour.Text = WeekdayName(Weekday(Date)) renvoie en texte le nom du mois courant
now
Renvoie la date et l'heure système
(6/11/02 9:42:28)
time
Renvoie l'heure système
(9:42:28)
Second(time)
Minute(time)
Hour(time)
Timer
Langage orienté objet VB
Renvoie la seconde du temps système
Renvoie la minute du temps système
Renvoie l' heure du temps système
Renvoie le nombre de secondes écoulées depuis minuit
- page 11
Feyaerts Prod
FONCTIONS PARTICULIÈRES
Masque de présentation d'un nombre
txtRep.Text = Format(10000000 / 3, "###,###.###")
Affichera : 3.333.333,333 ou 3 333 333,333 selon les paramètres du système
La fonction IIF
IIF(expression, si vraie, si pas vraie)
Private Sub TestEgalité_Click()
Dim a As Integer, b As Integer
b = 12
a = Val(txtNb1.Text)
txtRep.Text = IIf(a = b, "égal", "pas égal")
renvoie "égal" si le texte saisi dans txtNb1 est 12
Les fonctions inputbox() et msgbox() voir plus loin
InputBox() Affiche une invite dans une boîte de dialogue et renvoie la donnée entrée au clavier par
l'utilisateur
Dim Var As String
ou autre chose
Var = Inputbox ("Message ou question", "Titre", Valeur par défaut,
Xpos, ypos)
MsgBox() Affiche un message dans une boîte de dialogue et renvoie une valeur indiquant le
bouton de commande sur lequel l'utilisateur a cliqué.
Dim rep As Integer
rep = MsgBox("message", vbtype d'icône + vb type de réponses + vb
boutons par défaut,Titre")
Type d'icones
valeur
vbExclamation
48
vbCritical
16
vbInformation
64
vbQuestion
32
Types de réponses
VbOKOnly
OK
0
VbOKCancel
OK annuler
1
Langage orienté objet VB
- page 12
Feyaerts Prod
vbAbortRetryIgnorel
Abandonner Réessayer, Ignorer
2
vbYesNoCancel
Oui Non Annuler
3
VbYesNo
Oui Non
4
vbRetryCancel
5
Type de réponses
VbdefaultButton1
Bouton par défaut = 1er
0
Divers
VbApplicationModal
VbSystemmodal
U doit répondre avant de pouvoir
travailler dans l'application
Toutes aplications interrompues
tanque U na pas répondu
0
4096
Rmq si l'on connaît les valeurs celles-ci peuvent remplacer le nom des constantes. Elles peuvent
être additionnées mais il est bien sûr impossible de combiner deux icônes en effet 16 + 32 = 48
cad critical + question = exclamation
La valeur par défaut est 0 soit pas d'icône, vbOkOnly, vbApplicationModal.
Valeurs des constantes réponses
Constantes
Valeur
signification
VbOK
1
OK
VbCancel
2
Annuler
VbAbort
3
Abandonner
VbRetry
4
Réessayer
VbIgnore
5
Ignorer
VbYes
6
Oui
VbNo
7
Non
La fonction rnd()
Sert à donner des nombres aléatoires
Au préalable il faut initialiser le générateur de nombres aléatoire par la fonction randomize dans
la procédure. Ensuite
Rnd retourne un nombre [0 et 1[
(entre 0 compris et 1 non compris)
Syntaxe et formule
Pour avoir un entier x aléatoire entre min et max
Randomize
X= int(rnd*(max-min+1))+ min
Les grands classiques :
Entre 1 et 10
x = int(rnd * 10)
x = int(rnd * 10) + 1
Entre 1 et 6
x = int(rnd * 6) + 1
Entre 97 et 122
x = int(rnd * 26) + 97
Entre 0 et 9
Langage orienté objet VB
- page 13
(code ascii des lettres)
Feyaerts Prod
8.
LES STRUCTURES DE CONTRÔLES IF END IF, IF ELSE END IF,IF,
ELSE IF, ELSE ENDIF, SELECT CASE
Test simple
If (condition) Then
Instruction(s)
End If
−
−
−
−
La condition comporte une opération logique et est placée entre parenthèse.
Elle est toujours suivie de Then qui termine une ligne
Le test obligatoirement se termine par End If
Comme il n'y as pas d'alternative si la condition n'est pas remplie la procédure rend la
main
Alternative simple
If (condition) Then
Instruction(s)
Else
Instruction(s)
End If
−
Même remarques mais une alternative cad 2 possibilités.
Alterntive triple
If (condition) Then
Instruction(s)
Else
Instruction(s)
Else If
Instruction(s)
End If
−
Même remarques mais deux alternatives cad 3 possibilités.
Alternative multiple
On peut multiplier les Else If mais cela occupe trop d'espace mémoire.
On préfère le Select Case.
Select case nomvar
Case valeur1
Instruction(s)
Case valeur2, valeur 3, valeur 4
Instruction(s)
Case Else
Instruction(s)
End Select
−
−
−
−
La condition comporte une variable et propose plusieurs valeurs a cette variables.
Les instructions sont toujours à la ligne
La dernière voie de sortie est proposée par Case Else :"dans tous les autres cas"
Le test se termine obligatoirement par End Select
Exemple :
Utilisation d'un groupe de contrôle pour agir sur 3 boutons d'effacement.
La variable c'est l'index du groupe de contrôle les valeurs ce sont 0, 1, 2
Private Sub cmdEffacer_Click(Index As Integer)
Select Case Index
Case 0
txtA.Text = ""
Case 1
txtB.Text = ""
Case Else
txtC.Text = ""
End Select
End Sub
Langage orienté objet VB
- page 14
Feyaerts Prod
9. LES BOUCLES
En VB il existe de multiples manières de pratiquer les répétitives.
On peut utiliser les conditions While (tant que comme en C) ou Until (jusqu'à ce que comme
en Cobol). On peut utiliser l'un ou l'autre mais il faut garder en tête que les conditions sont
inversées.
Tant que la condition est remplie = Jusqu'à ce que la condition ne soit plus remplie.
Les conditions doivent être entre parenthèse.
LE DO LOOP WHILE
Do
Instructions
Modification des intervenants de la condition
Loop While (condition)
Signifie fait ceci et continue tant que la condition n'est pas remplie.
Particularités On rentre au moins une fois dans la boucle.
LE DO WHILE LOOP
Do while (condition)
Instruction(s)
Modification des intervenants de la condition
Loop
Remarque Avec les boucles Do while il faut une instruction qui permette de ne plus remplir la
condition (sinon boucle infinie ce qui est assez casse pied il faut arrêter VB)
Exemple : le PGCD
Private Sub cmdPgcd_Click()
Dim Nb1 As Integer, Nb2 As Integer
Nb1 = Val(txtA.Text)
Nb2 = Val(txtB.Text)
Do While Nb1 <> Nb2
ou until Nb1 = Nb2
If Nb1 > Nb2 Then
Nb1 = Nb1 - Nb2
Else
Nb2 = Nb2 - Nb1
End If
Loop
txtRep.Text = Nb1
End Sub
LE FOR NEXT
Les boucles for permettent de répéter une suite d'instruction en fonction d'un compteur dont on
règle le pas d'incrémentation par la clause step nb
For var = début to fin [step pas]
Instruction(s)
Next
Attention var = début to fin et non var = début to var = fin
Exemple : La factorielle
Private Sub cmdFactorielle_Click()
Dim Nb1 As Integer, Fact As Long, i As Integer
Fact = 1
il faut initialiser à 1 sinon on multiplie par 0
Nb1 = Val(txtA.Text)
For i = 1 To Nb1 [Step 1]
Fact = Fact * i
Next
txtRep.Text = "Factorielle de " & Nb1 & " = " & Fact
End Sub
Langage orienté objet VB
- page 15
Feyaerts Prod
La clause step est facultative et ici tout à fait inutile car le pas par défaut est 1
SORTIE DE LA BOUCLE
La plupart du temps lorsque la condition est satisfaite.
Mais on peut forcer la sortie par l'instruction exit for (breack comme en C)
BOUCLES IMBRIQUÉES
Private Sub cmdTest_Click()
Dim i As Integer, j As Integer
For i = 1 To 5
For j = 1 To 3
Print i, " ^ ", j
Next j
Next i
End Sub
Affiche sur la feuille le tableau ci contre
1
1
1
2
2
2
3
3
3
4
4
4
5
^
^
^
^
^
^
^
^
^
^
^
^
ETC
1
2
3
1
2
3
1
2
3
1
2
3
10. LES GROUPES DE CONTROLES
Plusieurs contrôles peuvent être regroupés en un groupe de contrôle. Le principal avantage étant
le gains de place en mémoire.
Condition : ils doivent
−
−
−
Appartenir à la même classe
Avoir les mêmes propriétés
Obéir aux mêmes événements
On les différencie par leur valeur d'Index qui va de 0 à n-1.
CRÉATION DE GROUPES DE CONTRÔLE
Copier coller
Copier un objet >
Coller >
Msg "Il y a déjà un objet 'trucmuche', Voulez vous créer un groupe de contrôle ? >
Oui
er
à Automatiquement le 1
objet reçoit l'index 0
et le second l'index 2
Dans la fenêtre propriété le nom de l'objet et accompagné de son index NomdObjet(Index) et das
la liste des propriétés le numéro d'index y est repris dans la catégorie "divers".
Ajout d'éléments à un groupe pendant l'exécution
−
Déclarer une variable Index
−
Le premier objet doit déjà avoir un index (0)
−
Créer les objets dans une procédure par l'instruction Load NomdObjet(index+1)
−
Dans la même procédure placer les objets créés par rapport à la place des précédents avec
les propriétés NomdObjet.Top = … et NomdObjet .Left = …
Sinon il seront superposés
−
Ne pas oublier de spécifier la largeur de l'objet et
−
Dans le cas des images de les rendre visibles.
Déchargement d'un élément d'un groupe
Unload NomdObjet(Index)
Attention lors du déchargement On ne peut décharger l'objet(0)
Prévoir un test du genre
If Index = 0 Then
Msgbox " message"
Langage orienté objet VB
- page 16
Feyaerts Prod
End if
Ou une boucle
Do While index >0
Unload nomdObjet(Index)
Index = index –1
Loop
On peut aussi utiliser for mais il faut avoir sauvegardé le nombre d'image
Dans un sens
Du dernier au premier
Private Sub cmdEff_Click()
For i = 1 To nbimg
Unload img(i)
Next
End Sub
Private Sub cmdEff_Click()
For i = nbimg To 1 Step -1
Unload img(i)
Next
End Sub
Exemple les groupes d'images
Cas un peu particulier car il faut d'abord créer la première image Le premier index est donc déjà à
zéro
Recopier des images de gauche à droite avec un espace de 100.
Dim i as Integer
Private Sub cmdAjout_Click()
i = i + 1
Load img(i)
Img(i).left = img(i-1)left + img(0).width + 100
Img(i).Visible = True
End sub
11. LES PROCÉDURES
Il existe différents types de procédures
−
−
−
−
Les procédures Sub qui ne renvoient pas de valeurs
Les procédures Functions qui ne renvoient qu'une seule valeur
Les procédures Property qui servent à déclarer des propriétés
Les procédures Event qui servent à déclarer des évènements.
Création : En mode Code : Outils > Ajouter une procédure provoque l'ouverture de la fenêtre
Il faut nommer la procédure, cocher son type, et son domaine d'existence.
Domaine : Les procédures peuvent être
Private : connues du seul module
Public ou Static connues de toute l'application
Rmq Les procédures Event est toujours public
−
−
Les procédures servent à économiser du code et des ressources Elles sont indispensables pour
déclarer les méthodes lors de la création nouvelles classes.
LES PROCÉDURES SUB
Private Sub Exemple()
End Sub
Une fois créée il faut la construire
Syntaxe :
Private Sub NomProcedure(Liste d'arguments)
Instructions
End Sub
Remarque l'inclusion d'un nom d'argument et son type équivalent à une déclaration.
Langage orienté objet VB
- page 17
Feyaerts Prod
Appel d'une procédure :
2 manières
Call NomProcédure (Argument 1, Argument 2)
NomProcédure Argument 1, Argument2
entre parenthèse
sans parenthèse
Sortie prématurée
Exit Sub
Exemple :
Private Sub AfficherMessage(n As Integer)
Select Case n
Case 1
MsgBox "Le client n'existe pas"
Case 2
MsgBox "Le client existe"
Case Else
MsgBox "dernier client"
End Select
End Sub
Private Sub cmdTest_Click()
Call AfficherMessage (1)
AfficherMessage 1
End Sub
ou
PROCEDURE FUNCTION
Les procédures function ne renvoient qu'une seule valeur il faut donc déclarer le type de la valeur
qu'elles renvoient.
Syntaxe :
Private Function Nomfunction(Liste d'arguments)As Type
Instructions
NomFunction
= expression
End Function
Appel
Call NomProcedure(Argument1, Argument2)
NomProcedure Argument1, Argument2
NomVar = Nomprocedure (Argument1, Argument 2)
Exemple Fonction factorielle
Private Function Fact(n As Integer) As Integer
Dim i As Integer
Dim f As Integer
f = 1
For i = 2 To n
f = f * i
Next
Fact = f
End Function
Private Sub cmdAffichage_Click()
txtRéponse.Text = Fact(Val(txtNombre.Text))
End Sub
Exemple Fonction Exponentielle
Private Function Exponentielle(Nb As Integer, Puiss As Integer) As
Long
Dim rep As Long
Dim i As Integer
rep = 1
Langage orienté objet VB
- page 18
Feyaerts Prod
For i = 1 To Puiss
rep = rep * Nb
Next
Exponentielle = rep
End Function
Private Sub cmdTest_Click()
txtRep.Text = Exponentielle(txtNB.Text, txtExposant.Text)
End Sub
12. TRANSMISSION D'ARGUMENT
Le système peut transmettre les arguments à une procédure de deux manières par référence
ByRef (par défaut) et par valeur ByVal.
ByRef : La procédure reçoit l'adresse de la variable Elle peut faire des calculs et peut modifier
cette valeur cad le contenu de la variable à cette adresse.
ByVal : La procédure reçoit une copie de la valeur elle exécute l'opération avec cette copie En
aucun cas le contenu de la variable n'est changé.
Utilité : Renvoyer plusieurs résultats avec une seule valeur entrée Alors qu'avec une fonction on ne
peut en renvoyer qu'une.
Exemple:
Private Sub SurfPeriCercle(ByVal Rayon As Single, ByRef Surf As
_ Single, ByRef Peri As Single)
Const Pi = 3.1416
Surf = Pi * Rayon * Rayon
Peri = Pi * 2 * Rayon
End Sub
Private Sub cmdTest_Click()
Dim R As Single, S As Single, P As Single
R = txtA.Text
SurfPeriCercle R, S, P
txtB.Text = S
txtC.Text = P
End Sub
Commentaires La procédure SurfPeriCercle recoit un argument ByVal et en renvoie 2 ByRef ce
qui contourne la contrainte des fonctions qui ne renvoient q'une valeur.
Mais il faut passer par des variables intermédiaires pour les résultats ici S et P
Langage orienté objet VB
- page 19
Feyaerts Prod
13. LES TABLEAUX
T ABLEAUX STATIQUES
Dont la taille définie une fois pour toutes à la déclaration ne peut pas changer.
Déclaration
Dim nomtableau(Indice max) as type
RMQ La taille du tableau = le nb d'élément –1 = Indice max (Attention différent du C)
Exemple
Dim Tab1(20) as Integer déclare un tableau nommé Tab1 de 21 éléments de type Integer
dont les indices varient de 0 à 20.
Option base 1 permet de modifier le numéro du 1er indice à la condition d'être placé entête de
module sous Option Explicit.
Dim Tab2(20 to 35) as Integer déclare un tableau nommé Tab2 de 16 éléments dont
les indices vont de 20 à 35.
Tableaux à 2 dimensions : Dim tab2(3,9) as Integer
T ABLEAUX DYNAMIQUES
Dont la taille peut varier au cours de l'exécution de l'application.
Déclaration
Dim tab() as Integer
On peut ne pas déclarer la taille du tableau.
C'est pratique si on ne la connaît pas
Cela permet d'éviter d'occuper inutilement de l'espace mémoire.
On augmentera la taille du tableau au fur et à mesure des besoins grâce à l'instruction ReDim.
ReDim Tab(Nb élément – 1) Réinitialise toutes les valeurs du tableau à 0 Cette instruction
remet donc à 0 toutes les valeurs du tableau.
Redim Tab (1 to nb) est aussi correct.
ReDim Preserve Tab(Nb élément –1) Permet de préserver les valeurs qui se trouvaient
déjà dans le tableau.
VIDER UN TABLEAU
Erase tab Efface toutes les données du tableau Il n'occupe plus de place mémoire il rest
smplement déclaré.
Fonction particulière
Is array(NomVar) renvoie true si la variable est bien un tableau cf isNumeric()
ACCÈS AUX DONNÉES D'UN TABLEAU
NomTableau(indice)
Exemple Ajout retrait vidange et affichage d'un tableau.
Option Explicit
Dim tabInt() As Integer
Dim Taille As Integer
Private Sub cmdAjout_Click()
If IsNumeric(txtElem.Text) And txtElem.Text <> "" Then
ReDim Preserve tabInt(Taille)
tabInt(Taille) = txtElem.Text
Taille = Taille + 1
txtElem.Text = ""
txtElem.SetFocus
Else
txtElem.Text = ""
txtElem.SetFocus
Langage orienté objet VB
- page 20
Feyaerts Prod
End If
End Sub
Private Sub cmdReset_Click()
Taille = 0
Erase tabInt
End Sub
Private Sub cmdRetirer_Click()
If Taille > 0 Then
ReDim Preserve tabInt(Taille - 1)
Taille = Taille - 1
Else
MsgBox "Le tableau déjà vidé", , "Tableau vide"
End If
End Sub
Private Sub cmdVerif_Click()
Dim i As Integer
Dim Elem As String
If Taille > 0 Then
For i = 0 To Taille - 1
Elem = Elem & vbCrLf & tabInt(i)
Next
MsgBox Elem, , "Affichage"
Else
MsgBox "Ce tableau est vide", , "Tableau vide"
End If
End Sub
14. LES BASES DE DONNÉES
RELIER LA BIBLIOTHÈQUE ADO AU PROJET
⇒ PROJET
⇒ REFERENCES
Cocher « Microsoft ActiveX Data Objects 2.0 Library »
DÉCLARER TROIS VARIABLES POUR RELIER LE PROJET À LA DB
Private cnnAdo as New ADODB.Connection
Private cmdAdo as New ADODB.Command
Private rsAdo as New ADODB.Recordset
ETABLIR LA CONNEXION
Sur Form_load : Initialiser les propriétés Provider et ConnectionString pour choisir la source
des données.
cnnAdo.Provider = « Microsoft.Jet.OLEDB.3.51 »
cnnAdo.ConnectionString = (« …. Chemin de la DB
…. »)
Appliquer la méthode Open
cnnAdo.Open
Configurer la commande
INITIALISER LES PROPRIÉTÉS ACTIVECONNECTION ET COMMANDT EXT
cmdAdo.ActiveConnection = cnnAdo
cmdAdo.CommandText = (« ….Requête SQL … »)
CONFIGURER ET OUVRIR LE RECORDSET
rsAdo.CursorType = adOpenDynamic
rsAdo.Open cmdAdo
Premier enregistrement disponible :
Langage orienté objet VB
- page 21
Feyaerts Prod
Txtnom.Text = rsAdo ! Nom
M ÉTHODES ET PROPRIÉTÉS DE L’OBJET RECORDSET
MoveFirst
se déplacer sur le premier enregistrement
MoveLast se déplacer sur le dernier enregistrement
MoveNext se déplacer sur l’enregistrement suivant
MovePrevious
se déplacer sur l’enregistrement précédent
BOF
Begin of File
EOF
End of File
EXEMPLES
Option Explicit
Private cnnAdo As New ADODB.Connection
Private cmdAdo As New ADODB.Command
Private rsAdo As New ADODB.Recordset
Private Sub Form_Load()
cnnAdo.Provider = "Microsoft.Jet.OLEDB.3.51"
cnnAdo.ConnectionString = ("C:\Ecole\Access\président.mdb")
cnnAdo.Open
cmdAdo.ActiveConnection = cnnAdo
cmdAdo.CommandText = ("select * from Tpresident")
rsAdo.CursorType = adOpenDynamic
rsAdo.Open cmdAdo
affiche
End Sub
Public Sub affiche()
txtPres_nr.Text = rsAdo!PRES_NR
txtPres_name.Text = rsAdo!PRES_NAME
txtBirth_yr.Text = rsAdo!BIRTH_YR
txtYrs_serv.Text = rsAdo!YRS_SERV
txtDeath_age.Text = rsAdo!DEATH_AGE
txtParty.Text = rsAdo!PARTY
txtState_born = rsAdo!STATE_BORN
End Sub
Langage orienté objet VB
- page 22
Feyaerts Prod
15. LA POO
QUELQUES NOTIONS DE BASE
Objet :
−
−
−
Unité autonome qui a ses propres données et
un ensemble de comportements qui vont
affecter ces données.
Les données sont stockées dans des variables
Chaque instance d'un objet a son propre
comportement.
Comportement :
−
−
Les comportements d'un objet permettent au
programmeur
d'accéder
aux
données
contenues dans l'objet.
Les comportements constituent l'interface de l'objet c'est à dire l'ensemble des propriétés,
méthodes et évènements de l'objet.
Méthode :
−
−
−
Les méthodes sont des services qui permettent l'interaction entre les objets.
Les méthodes utilisent les données ou les données d'un autre objet et produisent un résultat.
Une méthode est donc une routine
implémentée par sub ou function
(en VB)
Propriété :
−
−
Les propriétés sont des attributs qui
décrivent un objet elles redent
disponibles les informations de
l'objet.
Une propriété est une routine de
type property implémentée par
Property Get pour connaître la valeur de la propriété et par Property Let ou Set
pour attribuer une valeur à une propriété.
Événement :
−
−
−
−
−
Les contrôles sur les formulaires produisent des évènements.
Ceux-ci produisent au programmeur en retour ce qui arrive au contrôle.
Les objets peuvent aussi générer des évènements qui indiquent au programmeur ce qui arrive
à l'objet lorsque le programme s'exécute.
Pour déclarer un événement on utilise l'instruction Event (dans le module de classe)
Et l'instruction Raise-Event dans le formulaire.
Classe :
−
−
−
Les objets sont définit par les classes.
La classe est une abstraction de l'objet ;
l'objet est une instanciation de la classe.
La classe modélise l'objet Dont elle est en
quelque sorte le moule. Les moules qui
sont vides par essence peuvent en effet
servir
à
fabriquer
plusieurs
objets
semblables mais de couleurs différentes
Encapsulation :
−
−
Les informations contenues dans un objet
sont masquées au monde extérieur.
Il est néanmoins possible d'y accéder par
l'interface (Ó propriétés + méthodes +
évènements) Les données internes sont encapsulées.
Langage orienté objet VB
- page 23
Feyaerts Prod
Héritage :
−
Les objets d'une classe ont ces caractéristiques
communes Pour subdiviser les objet d'une classe sur des
sous caractéristiques il est possibles soit de réécrire
entièrement plusieurs nouvelles classes ou bien de
décrire des classes filles en s'appuyant sur les
caractéristiques d'une classe déjà existante : la classe
mère.
Polymorphisme :
−
−
Un même traitement sur des objets différents peut aboutir
à des comportement différent qui dépendent de la nature
de l'objet.
Le polymorphisme permet donc de manipuler des objets
différents de la m^me manière pourvu qu'ils ait une
interface identique.
Fonction virtuelle :
Le code d'une fonction virtuelle n'est pas écrit dans la classe mère.
Mais il l'est dans les modules classes filles chaque sous classe peut donc avoir son propre code
pour cette fonction.
Méthode surchargée :
Il s'agit d'une méthode d'une classe fille entièrement réécrite .
16. PERSONNALISATION D'OBJETS
CRÉATION D'UN MODULE DE CLASSE
Dans un projet cliquer sur projet à Ajouter un module de classe
VB crée alors un fichier supplémentaire xxxx.cls qu'il faudra nommer et sauvegarder.
Rappel : Les classes ont des
−
−
−
−
−
Données internes cachées du monde extérieur (Privées)
Propriétés accessibles à tous Publiques
Méthodes
et réagissent à des évènements
L'ensemble des propriétés, méthodes
et évènements s'appelle l'"interface publique"
CRÉATION DES DONNÉES INTERNES
Dans la feuille .cls juste après Option Explicit.
Avant tout il faut déclarer en privé toutes les données internes Ce sont des données internes
(privées à la classe) la convention voudrait qu'on utilise le préfixe m_ nomvar ou m_ signifie
"membre" .
Dim m_NomVar As TypeVar
CRÉATION DES PROPRIÉTES
Les propriétés font partie des éléments publics de l'interface de la classe.
Les propriétés sont des attributs qui décrivent un objet. Elles rendent disponibles les infos de
l'objet.
Une propriété est une routine de type property implémentée par :
−
Property Get à pour connaître la valeur de la propriété. Get renvoie la valeur et en
permet entre autre l'affichage.
−
Property Let ß pour attribuer une valeur à la propriété. Let permet de modifier les
données internes entre autre par la saisie de nouvelle valeur.
Langage orienté objet VB
- page 24
Feyaerts Prod
Dans la feuille .cls : Outils > Ajouter une procédure > on lui donne un nom : "NomProc" par
exemple, on coche "Property", et on la laisse en "Public" .
Les lignes suivantes sont créées dans la feuille .cls:
Public Property Get NomProc() As Variant
pour la lecture
End Property
Public Property Let NomProc(ByVal vNewValue As Variant)
pour l'écriture
End Property
a.
−
−
Property Get "à lecture"
Faire correspondre le type de la propriété avec le type de la donnée interne correspondante.
Affecter la variable interne à la propriété.
Public Property Get NomProc() As TypeVar
NomProc = m_NomVar
End Property
b.
−
−
Property Let "ß Saisie"
Faire correspondre le type de la propriété avec le type de la donnée interne correspondante.
Affecter le paramètre à la variable interne.
Public Property Let NomProc(ByVal p_Value As TypeVar)
m_Nomvar=p_var
End Property
CRÉATION DES MÉTHODES
−
−
−
Les méthodes sont des services publics qui permettent l'interaction entre des objets.
Les méthodes utilisent leurs données ou les données d'autres objets et produisent un résultat.
Une méthode est donc une routine implémentée par Sub ou function.
Dans la feuille .cls : Outils > Ajouter une procédure > on lui donne un nom : "NomProc" par
exemple, on coche "Function" ou "Sub" selon que la méthode doit renvoyer une valeur ou non, et
on la laisse en "Public" .
Selon le choix , les lignes suivantes sont créées dans la feuille .cls:
Public Sub meth()
End Sub
Public Function meth2()
End Function
Il faut préciser les éventuels paramètres que reçoit la fonction ainsi que la manière dont on les lui
transmet (ByVal ByRef).
−
Les paramètres peuvent être une variable ou un objet même issu de la classe que l'on
déclare.
Dans le cas de la procédure Function il faut préciser le type de la variable retournée
Public Function EstEgale(ByVal pdate As ClsDate) As Boolean
Langage orienté objet VB
- page 25
Feyaerts Prod
CRÉATION D'ÉVENEMENTS
Les objets peuvent générer des évènements qui indiquent au programmeur ce qui arrive à l'objet
lorsque le programme s'exécute.
Les évènements traduisent les réactions d'un objet qu'il reconnaîtra et auquel il peut réagir
Les contrôles comme les "boutons de commandes" réagissent à certains événements comme un
"clic" de la souris. L'occurrence de l'événement n'est pas déclenchée par le programmeur.
Dans la feuille .cls, il faut déclarer en public les évènements auxquels doivent réagir les
objets instanciés depuis la classe ainsi que les éventuelles variables paramètre qui interviennent à
cette occasion.
Public Event NomEvènement (ByVal nomVar As typeVar)
Dans le module on fera appel à l'événement par l'instruction :
RaiseEvent NomEvènement (nomVar)
NOTION DE CONSTRUCTEUR ET DE DESTRUCTEUR
Constructeur
Un constructeur est une méthode un peu particulière qui permet lors de la création effective
(instanciation) d'un objet de la classe d'initialiser certaines données.
En VB on l'appelle Class_initialize()
et elle doit être déclarée en privé !!!
Utile car les objets sont créés avant le Form Load.
Destructeur
Un destructeur est une méthode un peu particulière qui permet lors de la destruction effective d'un
objet de réaliser certaines actions juste avant sa destruction.
En VB on l'appelle Class_terminate()
Remarque si une feuille se décharge par End , le destructeur n'a pas l'occasion de s'exécuter Il
faut donc décharger la feuille par l'instruction plus adéquate Unload Me
INSTANCIATION D'OBJETS
Il suffit de déclarer les nouveaux objets en les nommant par l'instruction
Dim nomObjet As New clsNomClasse
L' HÉRTTAGE EN VB
Héritage d'interface (polymorphisme)
Placée en tête de module l'instruction implements nous oblige à écrire les mêmes propriétés et
méthode déjà implémentées dans la classe mère.
Il faut entièrement réécrire les méthodes et les propriétés.
On ne peut rajouter ni des méthodes ni des propriétés.
Héritage simulé
On combine 2 techniques l'encapsulation et la délégation.
Technique :
Soit une classe mère Mère.cls.avec les caractéristiques suivantes :
Donnée = Nb
Propriété= Prop
Méthode = Fct
On crée un nouveau module de classe Fille.cls et on écrit le code suivant :
Option Explicit
Private ObjMère as new Mère
Public Property get Prop() As Type
Prop = ObjMère.Prop
Langage orienté objet VB
- page 26
Feyaerts Prod
End Property
UN EXEMPLE
La classe cls_véhicule.cls
Option Explicit
Public Event WheelChanged(ByVal p_Wheels As Integer)déclaration d'un évènement
Private m_intWheels As Integer
déclaration donnée privée
proriété get
Public Property Get Wheels() As Integer
Wheels = m_intWheels
End Property
Public Property Let Wheels(ByVal p_Wheels As Integer) property Let
If p_Wheels < 2 Then
MsgBox "Pas de monocycles SVP", 0, "Erreur"
Else
m_intWheels = p_Wheels
RaiseEvent WheelChanged(m_intWheels)
End If
End Property
Public Sub ShowInfo()
MsgBox "Ce véhicule a " & m_intWheels & " roues."
End Sub
méthode
Le formulaire : frm_véhicule
Option Explicit
Déclaration d'un objet avec événement
Private WithEvents AutreObj_Véhicule As cls_Véhicule
Private Sub AutreObj_Véhicule_WheelChanged(ByVal p_Wheels As Integer)
MsgBox "Le nombre de roue est devenu " & p_Wheels
End Sub
Private Sub cmd_Pasdévènements_Click()
Dim MonObjVéhicule As New cls_Véhicule
MonObjVéhicule.Wheels = Val(txtSaisie.Text)
MonObjVéhicule.ShowInfo
End Sub
Private Sub cmdAvecEvènement_Click()
AutreObj_Véhicule.Wheels = Val(txtSaisie.Text)
End Sub
Private Sub Form_Load()
Set AutreObj_Véhicule = New cls_Véhicule
End Sub
Langage orienté objet VB
- page 27
Feyaerts Prod
UN EXEMPLE D'HÉRITAGE.
Clscompte
Propriétés
Solde Transfère la valeur de/vers sngSolde
Min Transfère la valeur de/vers sngMin
Méthodes
Ajouter (single) ajoute le nombre passé en
paramètre au solde de l'objet.
Retirer (single as Booléan: soustrait le nombre
passé en paramètre au solde de l'objet courant.
Si toutefois le résultat n'est pas inférieur au
minimum permis Si c'est le cas retourner false et
laisser le solde inchangé.
ClsCompteCourant
Donnée interne IntNbChèques = nombre de
chèques restant
Propriété nbChèques transfère la valeur de/vers intNbCchèques
Méthodes
Constucteur initialise le solde à 0 et le min à –1250
EncaisserChèque single as Booléan : décrémente le nombre de chèques restants et soustrait le
nombre passé en paramètre au solde de l'objet courant si toutefois le résultat n'est pas inférieur au
minimum permis si oui laisse le solde inchangé et renvoie false sinon renvoie true
La classe Compte :
Option Explicit
Private sngSolde As Single
Private sngMin As Single
Public Property Get Solde() As Single
Solde = sngSolde
End Property
Public Property Let Solde(ByVal p_Solde As Single)
sngSolde = p_Solde
End Property
Public Property Get Min() As Single
Min = sngMin
End Property
Public Property Let Min(ByVal p_Min As Single)
sngMin = p_Min
End Property
Public Sub Ajouter(montant As Single)
sngSolde = sngSolde + montant
End Sub
Public Function Retirer(montant As Single) As Boolean
If sngSolde - montant > sngMin Then
sngSolde = sngSolde - montant
Retirer = True
Else
Retirer = True
End If
End Function
Langage orienté objet VB
- page 28
Feyaerts Prod
La classe CompteCourant
Option Explicit
Private Compte As New clsCompte
Private intNbCheques As Integer
Public Property Get NbCheques() As Integer
NbCheques = intNbCheques
End Property
Public Property Let NbCheques(ByVal p_NbCheques As Integer)
intNbCheques = p_NbCheques
End Property
Public Property Get Solde() As Single
Solde = Compte.Solde
End Property
Public Property Let Solde(ByVal p_Solde As Single)
Compte.Solde = p_Solde
End Property
Public Property Get Min() As Single
Min = Compte.Min
End Property
Public Property Let Min(ByVal p_Min As Single)
Compte.Min = p_Min
End Property
Private Sub Class_Initialize()
sngMin = 0
sngSolde = -1250
End Sub
Public Sub Ajouter(montant As Single)
Compte.Ajouter montant
End Sub
Public Function Retirer(montant As Single) As Boolean
Retirer = Compte.Retirer(montant)
End Function
Public Function EncaisserCheque(montant As Single) As Boolean
intNbCheques = NbCheques - 1
EncaisserCheque = Compte.Retirer(montant)
End Function
Rmq pourquoi montant entre ()
Langage orienté objet VB
- page 29
Feyaerts Prod
17. LES CONTRÔLES EN DÉTAIL
LES FEUILLES
Évènement associé Load(), Activate()
permet de paramétrer la feuille à son chargement
Name
Nom utilisé dans le code pour identifier l'objet
Appearance
1 = 3D ; 0 = Flat
Autoredraw
Booléenne True / false ?
BackColor
Couleur de fond Palette ou système par défaut &H8000000F&
Border Style
0 plat pas de bord
1 fixed single Redimension impossible plus de bouton min ou max
2 sizable par défaut
3 fixed dialog Redimension impossible plus de bouton min ou max
4 fixed tool windows Redimension impossible plus de bouton min ou max btn stop plus petit
pas d'icône
5 sizable tool windows Redimension possible plus de bouton min ou max btn stop plus petit
pas d'icône
Caption
texte apparaissant dans la barre de titre
Controlbox
Booléenne si false disparition des boutons de contrôles et de l'icône
Enable
Booléenne si false aucune action possible sur l'objet
Fillcolor
Couleur de remplissage
Fillstyle
Font
Police de caractère du texte affiché sur la feuille
Forecolor
Couleur du texte affichée sur la feuille
Height
Hauteur de la feuille en pixel
Icon
Icône de la barre de titre
Left
Distance au bord gauche de l'écran
MaxButton
Booléenne si false bouton Max grisé
MinButton
Booléenne si false bouton Min grisé
MouseIcone
Apparence du pointeur de souris si MousePointeur = Custom
c:\program Files \microsoft visual Basic6 \common\Graphics
MousePointer
de 0 à 15 ; 99 = custom permet de choisir le MouseIcône
Moveable
Booléenne autorise ou non le déplacement de la feuille
Picture
Permet d'apposer une image dans la feuille
RMQ les images wmf se laissent stretcher
ShowInTaskbar Booléenne Si true apparaît dans la barre de tâche
StartupPosition Position au départ de l'application 0 manuel, 1 centerowner, 2 centerscreen, 3
Top
distance entre le bord supérieur et le bord supérieur de l'écran
Visible
Booléenne rend la feuille visible ou non
Width
Largeur de la feuille
WindowState
0 Normal, 1 Minimisée, 2 Maximiser
cls
?
hide
pas de paramètre cache la feuille
printform
pas de paramètre imprime la feuille
SetFocus
pas de parametre
Langage orienté objet VB
- page 30
Feyaerts Prod
LES BOUTONS DE COMMANDE
Évènement associé click(),
Name
Nom utilisé dans le code pour identifier l'objet
Caption
Texte apparaissant sur le bouton
Cancel
Booléenne Si True, la touche Esc déclenche la commande (False par défaut)
Default
Booléenne détermine si c'est le bouton par défaut de la feuille
Style
0 = standard 1 = graphical permet les couleur les dessins
DisablePicture Image si le bouton est inactivé.
DownPicture
Image quand le bouton est enfoncé.
DragIcon
Image à afficher dans une opération de glisser déplacer
Dragmode
Booléenne : 0 = Manuel, 1 = Automatic (image visible)
Enable
Booléenne : bouton actif on non
Font
Police de caractère du texte dans le bouton.
MouseIcone
Image du pointeur de souris si MousePointer =custom
c:\program Files \microsoft visual Basic6 \common\Graphics
MousePointer
de 0 à 15 ; 99 = custom permet de choisir le MouseIcône
Picture
Image du bouton si style = graphical.
c:\program Files \microsoft visual Basic6 \common\Graphics
Visible
Booléenne
SetFocus
pas de paramètre
LES ÉTIQUETTES
Évènement associé : Click()
Name
Nom utilisé dans le code pour identifier l'objet
Alignment
0=Left, 1=Right, 2 =Center
Appearence
0 = flat 1 = 3D (défaut = 1)
Autosize
Booléenne permet d'adapter automatiquement la taille au contenu
BackColor
Couleur de fond défaut = &H8000000F&
BackStyle
0 =Transparent, 1=Opaque
Boderstyle
0= None 1 =
Caption
Texte affiché
DragIcon
Image à afficher dans une opération de glisser déplacer
Dragmode
Booléenne 0 = Manuel, 1 = Automatic image visible
Enable
Booléenne contrôle utilisable ou non
Font
Police
ForeColor
Couleur du texte
MouseIcone
Image du pointeur de souris si MousePointer =custom
c:\program Files\microsoft visual Basic6 \common\Graphics
MousePointer de 0 à 15 ; 99 = custom permet de choisir le MouseIcône
ToolTipText
"Info bulle"
Visible
Booléenne
Wordwrap
Booléenne si true et autosize true : passe à la ligne
Langage orienté objet VB
- page 31
Feyaerts Prod
ZONE DE TEXTE
Évènement associé : Change(), KeyPress(),MouseDown(), MouseMove(),
MouseUp(),
Name
Nom utilisé dans le code pour identifier l'objet
Alignment
0=Left, 1=Righe, 2 =Center
Appearence
0 = flat 1 = 3D (defaut = 1)
BackColor
Couleur de fond défaut = vbWhite
DragIcon
Image à afficher dans une opération de glisser déplacer
Dragmode
Booléenne 0 = Manuel, 1 = Automatic image visible
Enable
Booléenne contrôle utilisable ou non
Font
Police
ForeColor
Couleur du texte
Locked
Booléenne true / false saisie impossible
Maxlenght
nombre max de caractères
MouseIcone
Image du pointeur de souris si MousePointer =custom c:\program Files \microsoft visual
Basic6 \common\Graphics
MousePointer
de 0 à 15 ; 99 = custom permet de choisir le MouseIcône
MultiLine
Booléenne true / false(défaut)
PasswordChar
"*" pour masquer une entrée.
ScrollBars
0, 1= hor, 2= vert , 3 = les deux
Text
"texte"
ToolTipText
"Info bulle"
Visible
Booléenne
SetFocus
pas de paramètre
Remarque on ne peut pas afficher du texte avec des vbCrLf il faut utiliser des étiquettes lbl
Truc pour forcer à ne saisir que des chiffres et signaler par un beep les saisies erronées.
Private Sub txtSaisie_KeyPress(KeyAscii as Integer)
If KeyAscii < 48 or KeyAscii > 57 Then
KeyAscii = 0
Beep
End If
End Sub
FRAME OU CADRE
Ca sert à regrouper des boutons à option ou à faire joli.
RMQ dans ce cas aussi un cadre n'étant jamais transparent et nécessite donc d'être créé en
premier.
Name
Nom utilisé dans le code pour identifier l'objet
Appearence
0 = flat 1 = 3D (defaut = 1)
BackColor
Couleur de fond défaut = &H8000000F&
Boderstyle
0= None 1 =
Caption
texte qui apparaît en titre (pas moyen de centrer)
DragIcon
imageà afficher dans une opération de glisser déplacer
Dragmode
Booléenne 0 = Manuel, 1 = Automatic image visible
Enable
Booléenne contrôle utilisable ou non
Font
police
ForeColor
Couleur du texte
MouseIcone
Image du pointeur de souris si MousePointer =custom c:\program Files \microsoft visual Basic6
\common\Graphics
MousePointer de 0 à 15 ; 99 = custom permet de choisir le MouseIcône
Langage orienté objet VB
- page 32
Feyaerts Prod
Visible
Booléenne
BOUTONS À OPTION
Les boutons réunis dans un même cadre font partie d'un même groupe la sélection de l'un d'entre
eux désélectionne les autres
Attention lors de la création par copier-coller il faut coller dans le cadre et pas sur la feuille.
Name
Nom utilisé dans le code pour identifier l'objet
Alignment
1 texte à Droite 0 texte à gauche (défaut)
Appearence
0 = flat 1 = 3D (defaut = 1)
BackColor
Couleur de fond défaut = &H8000000F&
Caption
texte affiché à côté du bouton
DisablePicture
Image si le bouton est inactivé.
DownPicture
Image quand le bouton est enfoncé.
DragIcon
Image à afficher dans une opération de glisser déplacer
Dragmode
Booléenne 0 = Manuel, 1 = Automatic image visible
Enable
Booléenne contrôle utilisable ou non
Font
Police
ForeColor
Couleur du texte
MouseIcone
Image du pointeur de souris si MousePointer =custom
c:\program Files \microsoft visual Basic6 \common\Graphics
MousePointer
de 0 à 15 ; 99 = custom permet de choisir le MouseIcône
Picture
Image du bouton si style = graphical.
c:\program Files \microsoft visual Basic6 \common\Graphics
Style
Booléenne 0 = Standart 1 = Graphical
Value
Booléenne false = non cochée (par défaut)
Visible
Booléenne
CASE À COCHER
Name
Nom utilisé dans le code pour identifier l'objet
Alignment
1 texte à Droite 0 texte à gauche (défaut)
Appearence
0 = flat 1 = 3D (defaut = 1)
BackColor
Couleur de fond défaut = &H8000000F&
Caption
texte affiché à côté de la case
DisablePicture
Image si le bouton est inactivé.
DownPicture
Image quand le bouton est enfoncé.
DragIcon
Image à afficher dans une opération de glisser déplacer
Dragmode
Booléenne 0 = Manuel, 1 = Automatic image visible
Enable
Booléenne contrôle utilisable ou non
Font
Police
ForeColor
Couleur du texte
MouseIcone
Image du pointeur de souris si MousePointer =custom c:\program Files \microsoft visual
Basic6 \common\Graphics
MousePointer
de 0 à 15 ; 99 = custom permet de choisir le MouseIcône
Picture
Image du bouton si style = graphical.c:\program Files \microsoft visual Basic6
\common\Graphics
Style
Booléenne 0 = Standart 1 = Graphical
Value
0 = unchecked (défaut), 1 = checked, 2 = grayed
Visible
Booléenne
T IMER
Name
Nom utilisé dans l e code pour identifier l'objet
Enabled
true / false
Interval
nombre en millisec
Langage orienté objet VB
- page 33
Feyaerts Prod
top
SLIDER MICROSOFT WINDOWS COMMON CONTROLS 6.0
Évènement associé Scroll() click()
Name
Nom utilisé dans le code pour identifier l'objet
Personnalisé
Ouvre une fenètre qui permet:de :
Général :
Min, Max, SmallChange, LargeChange, Enabled , SelectRange, SelStart,
SelLength
Apparence : Orientation, TickStyle, TickFrequency, MousePointer, TextPosition
BorderStyle
0 = none (défaut)
DragIcon
Image à afficher dans une opération de glisser déplacer
Dragmode
Booléenne 0 = Manuel, 1 = Automatic image visible
LargeChange
Incrément par touche PgDown et PgUp et par clic souris
Max
Valeur maximale renvoyée par le curseur
Min
Valeur minimale renvoyée par le curseur
MouseIcone
Image du pointeur de souris si MousePointer =custom c:\program Files \microsoft visual
Basic6 \common\Graphics
MousePointer
de 0 à 15 ; 99 = custom permet de choisir le MouseIcône
Orientation
0 = Horizontal 1 = Vertical
SelRange
Booléenne : True si sélection possible Fait apparaître une bande bleue entre le début et la
fin du curseur.
SelStart
Début de la sélection
SelLength
Longueur de la sélection.
SmallChange
Incrément par touches flèches
TextPosition
Au dessus en dessous à Gauche ou à d roite Selon l'orientation.
TickFrequency
Une marque tous les ..
TickStyle
0 en dessous 1 Au dessus, 2 les deux, 3 pas de marques
Value
0 ? par défaut
IMAGE
Name
Nom utilisé dans le code pour identifier l'objet
Appearence
1= 3D 2 = Flat
BorderStyle
0 = None ; 2 = fixed single
DragIcon
Image à afficher dans une opération de glisser déplacer
Dragmode
Booléenne 0 = Manuel, 1 = Automatic image visible
Enabled
Booléenne contrôle utilisable ou non
MouseIcone
Image du pointeur de souris si MousePointer =custom c:\program Files \microsoft visual
Basic6 \common\Graphics
MousePointer
de 0 à 15 ; 99 = custom permet de choisir le mouseIcône
Picture
permet de choisir limage à afficher
Stretch
true -> permet de "stretcher" l'image à une selon les propriétés Height et Width
false contour ajusté automatiquement ->
DATETIME PICKER MICROSOFT W INDOWS COMMON CONTROLS - 2 6 0
Name
Nom utilisé dans le code pour identifier l'objet
Personnalisé
Ouvre une fenètre qui permet: value; mindate, maxdate, format, mouspointer, enabled,
up&down.
Format
0= dtpLongDate; 1= dtpShortDate, 2 = dtpTime,dtpCustom.
Max Date
Limite supérieur de date
Mindate
Limite inférieure de date
MouseIcone
Image du pointeur de souris si MousePointer =custom c:\program Files \micros oft visual
Basic6 \common\Graphics
MousePointer
de 0 à 15 ; 99 = custom permet de choisir le mouseIcône
UpDown
True / false permet de changer la date par curseurs
Langage orienté objet VB
- page 34
Feyaerts Prod
Value
Renvoie ou définit la date actuelle. la date
LISTBOX = Zone de liste modifiable
Name
Nom utilisé dans le code pour identifier l'objet
Appearence
1= 3D 2 = Flat
BackColor
Couleur de fond défaut = vbWhite
Enabled
Booléenne contrôle utilisable ou non
Font
Permet de choisir la police
ForeColor
Couleur du texte
Itemdata
?
List
Renvoie ou définit les rubriques contenues dans la partie liste du contrôle.liste
Locked
True / false définit si le contenu peut être modifié.
MouseIcone
Image du pointeur de souris si MousePointer =custom c:\program Files \microsoft visual
Basic6 \common\Graphics
MousePointer
de 0 à 15 ; 99 = custom permet de choisir le mouseIcône
Multiselect
0 = none; 1= Single 2 = Extended
Sorted
True /false trié ou pas.
Style
0 par défault 1 checkbox
Propriétes
lst_nom.listcount
renvoie le nombre d'élément de la liste.
lst_nom.listindex
renvoie l'index de l'élement sélectionné de la liste
lst_nom.list(lxt_nom.listindex) renvoie l'élément sélectionné de la liste
Méthodes
lst.nom
lst_nom
lst_nom
lst_nom
Additem(item as string, index)
ClearRemoveItem(index)
RemoveItem(Lst_nom.listindex)
Combobox Allie la zone de liste modifiable à la zone de texte
Name
Nom utilisé dans le code pour identifier l'objet
Appearence
1= 3D 2 = Flat
BackColor
Couleur de fond défaut = vbWhite
DragIcon
imageà afficher dans une opération de glisser déplacer
Dragmode
Booléenne 0 = Manuel, 1 = Automatic image visible
Enabled
Booléenne contrôle utilisable ou non
ForeColor
Couleur du texte
itemData
?
List
Renvoie ou définit les rubriques contenues dans la partie liste du contrôle.liste
Locked
True / false définit si le contenu peut être modifié.
MouseIcone
Image du pointeur de souris si MousePointer =custom c:\program Files \microsoft visual
Basic6 \common\Graphics
MousePointer
de 0 à 15 ; 99 = custom permet de choisir le mouseIcône
Sorted
True /false trié ou pas.
Style
0 par défault partie texte & partie liste déroulante
Texte
valeur contenue dans la partie texte du contrôle.
Propriétes
listcount renvoie le nombre d'élément de la liste.
listindex renvoie l'index de l'élement sélectionné de la liste
list(index) renvoie l'élément sélectionné de la liste
Méthodes
Additem(item as string, index)
Clear
RemoveItem(index)
Langage orienté objet VB
- page 35
Feyaerts Prod

Documents pareils