Notes de cours 3
Le langage VB
Le langage VB
Références: VB .NET Heaven, source de tutoriels et de liens pour VB .NET.
MSDN Homepage, référence officielle de MSDN.
Comme vous savez de l'exercice précédent, pour ouvrir l'éditeur de code de VB vous devez soit cliquer sur l'icon View Code dans la fenêtre Solution Explorer, cliquer sur View-->Code dans le menu ou cliquer sur l'onglet Form1.vb ou encore faire un double-clique sur un objet.
Vous noterez que dans la ligne de menu les fonctions Delete, Cut, Copy, Paste, Find, Replace, etc. fonctionnent toutes comme dans un éditeur de texte ordinaire.
Le langage VB n'est pas très rigide: les espaces, indentations, etc. n'ont pas d'importance pour le compilateur. Cependant, elles en ont pour le professeur et vous devrez respecter les techniques de base concernant la lisibilité du code.
En général on écrit une commande par ligne; pour la lisibilité il est parfois préférable de mettre la commande sur 2 lignes en utilisant le caractère de continuation
(espace underscore) _
La ligne suivante est correcte:
Data1.RecordSource = "SELECT * FROM Titles"
Mais je pourrais aussi l'écrire en 2 lignes dans le code:
Data1.RecordSource = _
"SELECT * FROM Titles"
Dans le cas contraire on pourrait écrire 2 commandes sur une ligne en les séparant par un : mais ce n'est pas une pratique recommandée!
L'utilisation de majuscules ou minuscules n'a pas d'importance, sauf pour la lisibilité.
Le caractère de commentaire est l'apostrophe '
On recommande l'usage de commentaires dans les codes partout ou des explications sont requises.
Notez qu'on ne peut pas mettre un commentaire après un caractère de continuation.
Les commentaires peuvent être au début d'une ligne ou après le code comme:
- Le nom doit commencer par une lettre
- Maximum de 255 caractères
- Ne doit pas contenir d'espaces; peut contenir des signes excepté ceux qui décrivent un data type:
- Ne doit pas être un mot réservé (qui fait partie du code )


Référence: Coding techniques
Quand on crée des controles en VB, l'éditeur leur donne automatiquement un nom. Par exemple, le premier bouton sera Command1 et le vingtième sera Command20. Dans le code, quand on voudra référer au bouton pour exécuter les calculs, est-ce Command8 ou Command12? Et une variable qu'on a définie, est-ce une "String" ou une "Single" ou une "Double"? C'est difficile de se rappeler de tous les contrôles et les variables qu'on crée pour pouvoir s'y retrouver par la suite si on n'utilise pas un système de référence.
Pour nommer les objets en VB il y 2 facteurs à considérer:
txtHeures au lieu de Text3 pour la saisie du nombre d'heures
et sglTaux_horaire pour la variable de taux plutôt que t_h
MSDN Homepage, référence officielle de MSDN.
Comme vous savez de l'exercice précédent, pour ouvrir l'éditeur de code de VB vous devez soit cliquer sur l'icon View Code dans la fenêtre Solution Explorer, cliquer sur View-->Code dans le menu ou cliquer sur l'onglet Form1.vb ou encore faire un double-clique sur un objet.
Vous noterez que dans la ligne de menu les fonctions Delete, Cut, Copy, Paste, Find, Replace, etc. fonctionnent toutes comme dans un éditeur de texte ordinaire.
Lignes de code
Le langage VB n'est pas très rigide: les espaces, indentations, etc. n'ont pas d'importance pour le compilateur. Cependant, elles en ont pour le professeur et vous devrez respecter les techniques de base concernant la lisibilité du code.
En général on écrit une commande par ligne; pour la lisibilité il est parfois préférable de mettre la commande sur 2 lignes en utilisant le caractère de continuation
(espace underscore) _
La ligne suivante est correcte:
Data1.RecordSource = "SELECT * FROM Titles"
Mais je pourrais aussi l'écrire en 2 lignes dans le code:
Data1.RecordSource = _
"SELECT * FROM Titles"
Dans le cas contraire on pourrait écrire 2 commandes sur une ligne en les séparant par un : mais ce n'est pas une pratique recommandée!
L'utilisation de majuscules ou minuscules n'a pas d'importance, sauf pour la lisibilité.
Commentaires
Le caractère de commentaire est l'apostrophe '
On recommande l'usage de commentaires dans les codes partout ou des explications sont requises.
Notez qu'on ne peut pas mettre un commentaire après un caractère de continuation.
Les commentaires peuvent être au début d'une ligne ou après le code comme:
' Ceci est un commentaire
nom.Text = "Michel" ' Ce commentaire suit une commande
nom.Text = "Michel" ' Ce commentaire suit une commande
Noms de variables
- Le nom doit commencer par une lettre
- Maximum de 255 caractères
- Ne doit pas contenir d'espaces; peut contenir des signes excepté ceux qui décrivent un data type:
! single, # double, % integer, $ string, & long, @ currency
(le trait d'union - quoique légal est fortement
déconseillé car il porte à confusion avec l'opération moins; utilisez
plutôt le underscore comme: nom_famille ou les majuscules comme:
NomFamille)
- Ne doit pas être un mot réservé (qui fait partie du code )
Types de données (Data types)
Techniques recommandées
Référence: Coding techniques
Quand on crée des controles en VB, l'éditeur leur donne automatiquement un nom. Par exemple, le premier bouton sera Command1 et le vingtième sera Command20. Dans le code, quand on voudra référer au bouton pour exécuter les calculs, est-ce Command8 ou Command12? Et une variable qu'on a définie, est-ce une "String" ou une "Single" ou une "Double"? C'est difficile de se rappeler de tous les contrôles et les variables qu'on crée pour pouvoir s'y retrouver par la suite si on n'utilise pas un système de référence.
Pour nommer les objets en VB il y 2 facteurs à considérer:
- Utiliser toujours un nom significatif pour chaque objet
- Utiliser le préfixe standard pour chaque objet tel que suggéré par le langage
txtHeures au lieu de Text3 pour la saisie du nombre d'heures
et sglTaux_horaire pour la variable de taux plutôt que t_h
Voici le tableau des préfixes suggérés par VB, pour les variables et pour les controls:
|
|
Déclaration de variables
Déclaration explicite
Référence: le Dim statement
Définir une variable au début d'une procédure ou dans la section "Declarations" en utilisant Dim
On peut aussi déclarer plusieurs valeurs sur une même ligne:
On peut aussi initialiser les variables en les déclarant:
Déclaration implicite
Déclaration dynamique, faite "on the fly" dans le code:
En général, les déclarations implicites ne sont pas recommandées car elles rendent le code plus difficile à lire et à comprendre.
Pour éviter de créer des variables implicites accidentellement, on ajoute la ligne:
Option Explicit On
au tout début du code.
Constantes
Une constante est une valeur qui ne change pas au cours de l'exécution d'une procédure; on la déclare avec Const comme:
Normalement, les variables déclarées dans une procédure sont détruites lorsqu'on quitte la procédure; si on veut les garder on peut les déclarer avec Static au lieu de Dim comme:
Static TotalOtt As Integer
Avant de procéder aux exercices, vous devriez voir la section sur: Utiliser plusieurs Forms


Par exemple, créez un nouveau form avec trois bouttons et codez les trois modules qui suivent et comparez-les:
Une variable déclarée dans une procédure avec l'instruction Dim est locale; lorsqu'on sort de la procédure la variable n'existe plus.
Si on déclare la variable dans la section General/Declarations avec Dim, la variable est locale au module; elle est disponible pour toutes les autres procédures de la feuille.
Si on déclare la variable dans la section General/Declarations d'un module (et non d'une feuille), avec l'instruction Public au lieu de Dim, la variable est globale et elle est disponible à l'application toute entière.
Référence: le Dim statement
Définir une variable au début d'une procédure ou dans la section "Declarations" en utilisant Dim
Dim UnEntier As Integer
Dim NomClient As String
Dim MontantDu As Decimal
Ceci a pour effet de spécifier le nom d'un espace de stockage et
d'annoncer au compilateur le type de valeur qui sera contenu. Cela
permet une gestion plus efficace de la mémoire et aide à éviter les
erreurs.Dim NomClient As String
Dim MontantDu As Decimal
On peut aussi déclarer plusieurs valeurs sur une même ligne:
Dim nomEtudiant As String, note Etudiant As Single
Dim nbHeures, salBrut, salNet As Single
Dim dateNaiss, dateEmbauche As Date
Dim nbHeures, salBrut, salNet As Single
Dim dateNaiss, dateEmbauche As Date
On peut aussi initialiser les variables en les déclarant:
Dim nbHeures As Integer = 40
Dim monNom As String = "Michel"
Dim dateEmbauche As Date = #1995-10-30#
Dim valUn As Integer = 0, valDeux As Integer = 0
Dim monNom As String = "Michel"
Dim dateEmbauche As Date = #1995-10-30#
Dim valUn As Integer = 0, valDeux As Integer = 0
Déclaration implicite
Déclaration dynamique, faite "on the fly" dans le code:
Total4% = 0
Montant5# = 12.34
MonNom$ = "Michel"
Montant5# = 12.34
MonNom$ = "Michel"
En général, les déclarations implicites ne sont pas recommandées car elles rendent le code plus difficile à lire et à comprendre.
Pour éviter de créer des variables implicites accidentellement, on ajoute la ligne:
Option Explicit On
au tout début du code.
Constantes
Une constante est une valeur qui ne change pas au cours de l'exécution d'une procédure; on la déclare avec Const comme:
Const ValeurPi = 3.1416
Normalement, les variables déclarées dans une procédure sont détruites lorsqu'on quitte la procédure; si on veut les garder on peut les déclarer avec Static au lieu de Dim comme:
Static TotalOtt As Integer
Avant de procéder aux exercices, vous devriez voir la section sur: Utiliser plusieurs Forms
Exemples
Par exemple, créez un nouveau form avec trois bouttons et codez les trois modules qui suivent et comparez-les:
Private Sub Command1_Click()
Dim I As Integer
I = I + 1
Command1.Text = I
End Sub
Private Sub Command2_Click()
Static I As Integer
I = I + 1
Command2.Text = I
End Sub
Dim i As Integer ' cette ligne dans la section Declarations
Private Sub Command3_Click()
I = I + 1
Command3.Text = I
End Sub
Dim I As Integer
I = I + 1
Command1.Text = I
End Sub
Private Sub Command2_Click()
Static I As Integer
I = I + 1
Command2.Text = I
End Sub
Dim i As Integer ' cette ligne dans la section Declarations
Private Sub Command3_Click()
I = I + 1
Command3.Text = I
End Sub
Portée des variables (Scope)
Une variable déclarée dans une procédure avec l'instruction Dim est locale; lorsqu'on sort de la procédure la variable n'existe plus.
Si on déclare la variable dans la section General/Declarations avec Dim, la variable est locale au module; elle est disponible pour toutes les autres procédures de la feuille.
Si on déclare la variable dans la section General/Declarations d'un module (et non d'une feuille), avec l'instruction Public au lieu de Dim, la variable est globale et elle est disponible à l'application toute entière.
Opérateurs
Les opérateurs arithmétiques habituels sont disponibles:
+ - * /
En plus on peut maintenant combiner les opérateurs comme:
compteur += 1
' qui est l'équivalent de
compteur = compteur + 1
Le signe & est utilisé pour une concaténation de chaines:
Les opérateurs de comparaison habituels sont utilisés:
= > < <= >= <> ainsi que AND OR NOT IS et LIKE
+ - * /
En plus on peut maintenant combiner les opérateurs comme:
compteur += 1
' qui est l'équivalent de
compteur = compteur + 1
Le signe & est utilisé pour une concaténation de chaines:
Dim alpha, beta, chaine As String
alpha = "Chaine divisée "
beta = "en deux parties"
chaine = alpha & beta
' Le résultat sera: "Chaine divisée en deux parties"
Avec les variables de type Variant le signe + peut aussi dénoter une
concaténation si les deux variables contiennent des chaines mais, on
suggère de toujours utiliser le &alpha = "Chaine divisée "
beta = "en deux parties"
chaine = alpha & beta
' Le résultat sera: "Chaine divisée en deux parties"
Les opérateurs de comparaison habituels sont utilisés:
= > < <= >= <> ainsi que AND OR NOT IS et LIKE
Utiliser plusieurs Forms dans un Projet
Un projet peut contenir plusieurs feuilles (Forms). Il s'agit d'abord de créer une nouvelle feuille en faisant Add form. Ensuite, pour l'ouvrir il y a deux façons:
1) on peut changer le Startup object dans les propriétés de Project pour que notre nouvelle feuille s'ouvre en démarrant le Projet:
2) on peut appeler un form à partir d'un autre form;
il faut créer un nouvel objet du form qu'on veut ouvrir et invoquer sa méthode Show( ).
2) on peut appeler un form à partir d'un autre form;
il faut créer un nouvel objet du form qu'on veut ouvrir et invoquer sa méthode Show( ).

Aucun commentaire:
Enregistrer un commentaire