DÉVELOPPEMENT RAPIDE D'APPLICATIONS




Notes de cours 3

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.



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



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

Donc: btnExit au lieu de Button8 pour le bouton "Exit",
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:


Variable Data Type Prefix Example
Boolean bln blnFull
Byte byt bytDaysInMonth
Currency cur curPoundsSterling
Date (Time) dtm dtmStart
Double dbl dblAstronomicalDistances
Integer int intNumberOfEmployees
Long lng lngProfits
Single sgl sgl
String str strSurname
User-Defined Type udt udtStaffDetails
Variant vnt vntChartData


Control Type Prefix Example
Animated button ani aniEmptying
Check box chk chkWriteOnly
Combo box cbo cboLanguage
Button btn btnCancel
Common Dialog dlg dlgSave
Data Contol dat datStock
Data-bound Combo dbcbo dbcboActicleType
Data-bound Grid dbgrd dbgrdStockItems
Data-bound List box dblst dblstAccountCodes
Directory list box dir dirTarget
Drive list box drv drvSource
File list box fil filPick
Form frm frmMainMenu
Frame fra frmPrinters
Graph gra graSharePrices
Grid grd grdQuantities
Horizontal Scroll Bar hsb hsbHueColor
Image img imgBitMap
Label lbl lblHelpUser
List Box lst lstColorCodes
MCI mci mciSoundEffects
MDI Child Form mdi mdiJuly
Menu mnu mnuFileOpen
MS Tab mst mstDays
OLE ole oleExcel
Picture Box pic picMemoryLeft
ProgressBar prg prgConverting
Report rpt rptEndofYear
RichTextBox rtf rtfDiary
Shape shp shpSquare
Slider sld sldWindSpeed
Spin button spn spnTicketsRequired
StatusBar sta staInformation
Text Box txt txtInputText
Timer tmr tmrStartAlarmCount
Vertical Scroll Bar vsb vsbRatios











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

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.

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



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


Déclaration implicite

Déclaration dynamique, faite "on the fly" dans le code:
Total4% = 0

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


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:
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 &

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( ).