2. Plan du cours
Les bases de VB
Les structures conditionnelles
Les structures itératives
Les structures de données complexes
(structures, tableau, collection)
Les procedures et les fonction
La programmation évènementielle avec VB
Les objets de bases
Reactions aux évènements
3. langage binaire (des 0 et des 1).
Langages delangage
Génération II: le programmation
assembleur, s'adresse au microprocesseur
instruction par instruction.
Génération III: introduit une syntaxe et des
mots réservés, ce sont les langages
procéduraux
(COBOL, Fortran, BASIC, Pascal, langage
C, RPG) ou encore à objets
(Java, C++, Eiffel, Python).
Génération IV: associée à des bases de
données, se situe un niveau au-dessus, en
intégrant la gestion de l'interface utilisateur et
en proposant un langage moins
technique, plus proche de la syntaxe naturelle.
5. Historique du langage Visual
Basic
Le BASIC (Beginner's All-purpose Symbolic
Instruction Code, 1963)
Principes de concept:
ofacile d'utilisation pour les débutants
oun langage généraliste (All-purpose) ;
oautoriser l'ajout de fonctionnalités pour les
ointeractif ;
ofournir des messages d'erreur clairs et conviviaux ;
oavoir un délai de réaction faible pour les petits
programmes ;
oIndépendant du matériel
oisoler l'utilisateur du système d'exploitation.
6. Visual Basic
Le VB est directement dérivé du BASIC et
permet le développement rapide
d'applications, la création d'interfaces
utilisateur graphiques, l'accès aux bases de
données, ainsi que la création de contrôles
ou d'objets ActiveX.
VB est un langage de haut niveau
7. Framework
Un framework (dans notre cas, le framework
.NET de Microsoft) est une sorte d'immense
bibliothèque informatique contenant des outils
qui vont faciliter la vie du développeur
Evolution:
oVersion 2.0 en 2005
oVersion 3.5 en 2007
oVersion 4 en 2010
Visual studio et framework
oVS 2003 (Framework 1.1), VS 2005
(Framework 2.0), VS 2008 (Framework 3.5)
et VS 2010 (Framework 4.0).
8. Premier programme
Créer un nouveau projet (application console)
Voici le code que nous devons obtenir
Module Module1
Sub Main()
End Sub
End Module
Chaque section ce termine par END (end
sub, end module)
la première chose que ce dernier va faire sera
de localiser et de sauter dans la partie appelée
« Main »
9. Premier programme (exécution)
Exécution très rapide
Affichons un message
Console.Write("Hello World !")
Attendons un évènement
Console.Read() Apres l exécution de ce programme, on va avoir un
message affiché sur la console. L’application va ensuite attendre une
action de l’utilisateur pour se terminer
10. Procédure, objets et fonctions
Main(): fonction principale qui sera appelée lors
de l’exécution
console: objet offrant un ensemble de fonctions
relié à l’affichage, la lecture, le BEEP , ……
Fonction: ce sont les comportement que offre
un objet (la méthode write par exemple permet d
afficher sur la console).
Une procédure/fonction peut prendre plusieurs
arguments
11. Variables
Dim MaVariable As type
Les types disponibles:
oBoolean
oInteger
oDouble
oString
oDate Stocke une date et son heure sous la
forme « 12/06/2009 11:10:20 ».
13. Les constantes
Une constance est un objet dont la valeur
ne change pas au cours de l’exécution
Déclaration:
Const NomConstante As Type = Valeur
Const LONGUEURTABLEAU As Integer = 9
14. Structures
Une structure est utilisée comme conteneur pour un petit
jeu de variables.
Permet de regrouper des données de type différent:
EXEMPLE:
15. Utilisation
La variable MonAdresse contient
un numéro qui est dans 'MonAdresse.Numero'
un nom de rue qui est dans 'MonAdresse.Rue'
un nom de ville qui est dans 'MonAdresse.Ville
MonAdresse.Numero=2
MonAdresse.Rue= "Grande rue"
MonAdresse.Ville= "Lyon"
16. Utilisation
Mot clé With pour ne pas avoir à répéter le nom de la
variable
With MonAdresse
.Rue= "Grande rue"
.Ville= "Lyon"
End With
Structures et tableaux
Dim Adresses(99) as Adresse
'Permet de travailler sur un tableau de 100 adresses
Adresses(33).Rue="Place de la mairie"
17. La fonction write
Write: affiche sans retour à la ligne
Writeline : affiche avec retour à la ligne
& : concaténer deux chaines
18. Exemple: Que fait ce programme
Module Module1
Sub Main()
'Initialisation des variables
Dim MaVariable As Integer = 0
Dim MaVariable2 As Integer = 0
Console.WriteLine("- Multiplication de deux nombres -")
'Demande du premier nombre stocké dans MaVariable
Console.WriteLine("Veuillez entrer le premier nombre")
MaVariable = Console.ReadLine()
'Demande du second nombre stocké dans MaVariable2
Console.WriteLine("Veuillez entrer le second nombre")
MaVariable2 = Console.ReadLine()
'Affiche "X x Y = " puis le résultat (multiplication
de MaVariable par MaVariable2)
Console.WriteLine(MaVariable & " x " & MaVariable2 & " = " &
MaVariable * MaVariable2)
23. La boucle for
For x As Integer = 0 to 10 step 2
'Instruction à exécuter 5 fois
Next
24. Tableaux
1 dimension
oDim MonTableau(4) As Integer
2 dimensions
oDim MonTableau(3,4) As Integer
3 dimensions
oDim MonTableau(2,3,4) As Integer
TAILLE D’UN TABLEAU
Le nombre de cases d'un tableau est toujours « indice + 1 ».
Réciproquement, l'index de sa dernière case est « taille - 1 ».
25. Les tableaux dans les structures
En Visual Basic .NET il y a 2 méthodes pour utiliser un tableau
dans une structure:
1-Méthode par initialize
Une structure peut comporter une méthode 'Initialize' qui sera
exécutée quand on déclare une variable de type structure.
Public Structure DriveInfo
Dim DriveNumber() As Short
'Noter que le nombre d'élément a disparu.
Dim DriveType As String
'maintenant on instance les 25 éléments.
Public Sub Initialize()
ReDim DriveNumber(25)
End Sub
End Structure
26. Les tableaux dans les structures
2. Après la déclaration de la variable, on 'Redimensionne'
le tableau.
Public Structure DriveInfo
Dim DriveNumber() As Short
Dim DriveType As String
End Structure
Function AddDrive(ByRef Number As ShorByRef
DriveLabel As String) As Object
Dim Drives As DriveInfo
Redim Drives.DriveNumber(25)
Drives.DriveNumber(3)=12
Drives.DriveType = "Fixed"
End Function
27. Opérations sur les tableaux:
affichage
'afficher les éléments un par un
for i=0 to N
console.write(t(i))
Next
28. recherche dans un tableau
Pour une liste non triée, on n'a pas d'autres choix que de comparer la
string cherchée à chaque élément du tableau, on utilisera donc une boucle:
N=4 'tableau de 5 éléments.
Dim T(N) As String 'élément de 0 à 4
T(0)="vert"
T(1)="bleu"
T(2)="rouge"
T(3)="jaune"
T(4)="blanc"
Dim i As Integer 'Variable de boucle
Dim AChercher As String= "rouge" 'String à chercher
For i=0 To N
If T(i)=AChercher then
Exit For
End if
Next i
29. opérations sur les tableaux: supprimer
si on veut supprimer l'élément d'indice x, on doit copier les élements d'indices
i+1 dans l'element d'indice i pour tout i>=x
Dim N As Integer
Dim T(N) As String
'création d'un tableau de String.
Dim i As Integer
For i= x To N-1
T(i)=T(i+1)
Next i
T(N-1)=""
'ne pas oublier de modifier le dernier élément
30. opérations sur les tableaux : insérer un
élement
pour insérer un element à l'indice x, on doit decaler toutes
les cases à partir de x d'une unité et insérer l'élément voulu à l'endroit x
Dim N As Integer
Dim T(N) As String
'création d'un tableau de String.
Dim i As Integer
For i= N-1 To x+1 Step -1
T(i)=T(i-1)
Next i
T(x)="LFSI"
'ne pas oublier d'ajouter
31. Opérations sur les tableaux: recherche
d'un élément
Pour une liste non triée, on n'a pas d'autres choix que de comparer la
string cherchée à chaque élément du tableau, on utilisera donc une
boucle:
N=4 'tableau de 5 éléments.
Dim T(N) As String 'élément de 0 à 4
T(0)="vert"
T(1)="bleu"
T(2)="rouge"
T(3)="jaune"
T(4)="blanc"
Dim i As Integer 'Variable de boucle
Dim AChercher As String= "rouge" 'String à chercher
For i=0 To N
If T(i)=AChercher then
Exit For
End if
Next i
32. Les collections
Les Collections permettent de regrouper des données. Les collections sont
très utilisées dans la programmation 'Objet'.
Une collection fonctionne plutôt comme un groupe d'éléments dans laquelle il est
possible d'ajouter ou d'enlever un élément à n'importe quel endroit sans avoir à
se préoccuper de la taille de la collection, ni ou se trouve l'élément.
Le nombre d'élément n'est pas défini au départ comme dans un tableau. Dans
une collection, il n'y a aucun élément au départ, puis il n'y a que les éléments que
l'on a ajouté.
Les éléments sont repérés grâce à un index ou avec une Clé unique
Les items affichés dans une ListBox donnent une idée concrète de ce qu'est une
collection.
Types de collections:
Les Listes:ArrayList, List(Of..) VB 2005
...........................................
33. collection de type array list
C'est une 'Liste' d'objets, d'Item:
La ArrayList est une collection particulière: On peut y mettre des objets :
chaînes, nombres... rien n'empêche que le premier élément soit un entier,
le second une chaîne … .
Il n'y a pas de clé.
Dim L As New ArrayList()
'On crée une collection ArrayList
Dim L As ArrayList = ArrayList.Repeat("A", 5)
'On crée une ArrayList de 5 éléments contenant chacun "A" (on répète "A")
L.Add("Bonjour")
'On ajoute un élément à la collection
34. arraylist : quelques opérations
L.Remove("Bonjour")
'On enlève l'élément de la liste qui contient "Bonjour"
L.RemoveAt(0)
'On enlève l'élément 0 de la liste
L.Sort()
'Trie la collection
L.Clear()
'Efface tous les éléments
L.Contains (élément)
' Retourne True si la liste contient élément.
35. arraylist: quelques opération
Insert permet d'insérer à un index spécifié:
L.Insert( position, Ainserrer)recherche
L.Containts (élément) ' Retourne True si la liste contient 'élément'.
Recherche d'un élément dans une collection NON TRIEE avec IndexOf:
Dim l As New ArrayList
Dim i As Integer
l.Add("toto")
l.Add("lulu")
i = l.IndexOf("lulu")
MsgBox(i.ToString)
'Affiche 1 qui est l'index de "lulu"
36. Fonction et procédure
Une procédure est un ensemble d'instructions qui effectue
une fonction précise.
En Visual Basic.NET, il existe deux sortes de procédures :
les 'sub' et les 'function' .
oLes 'sub' commencent par le mot clé 'sub' puis finissent
par 'end sub' et ne retournent aucune valeur
oLes fonctions qui débutent par 'function' puis finissent
par 'end function' et qui retournent une valeur précise.
37. Les fonctions
Syntaxe
Function NOMF(ByVal Valeur1 As Integer, ByVal Valeur2 As Integer)
As Integer
Instructions ……
Return Resultat
End Function
38. Arguments d'une fonction
Passage par valeur (ByVal)
La procédure utilise alors une copie de la variable. La
valeur de la variable ne peut pas être modifiée par la
procédure.
Passage par référence (ByRef)
L'adresse de la variable qui est passée à la procédure et
peut donc être modifiée par la procédure.
42. Créer un projet
Créer nouveau projet
Choisir « application windows forms »
Le contrôle de base « form »
Le contrôle de base en Visual Basic est la
feuille, ou formulaire, en anglais, Form.
Deux proriétés basiques:
Name: nom de l’objet tel qu’il est géré par
l’application
Caption: texte associé à l’objet sur l’écran
43. Autres propriétés
Modal : propriété qui gère le caractère
« impératif » ou non de toute Form (on peut
cliquer ou non en dehors de la form, sur une
autre Form)
Style : propriété qui gère la tête générale
de la Form (présence ou non du menu
système, tête des bordures, etc.)
Visible : propriété booléenne qui
gère, comme son nom l’indique, le caractère
visible ou non de la Form (et partant, des
autres contrôles qu’elle contient)
44. Form (propriétés)
BackColor: Définis l'arrière plan du contrôle
Text: Le titre de la form
Name: Le nom du contrôle utilisé dans le
codage
Enabled: Indique si le contrôle est activé ou
pas
45. Un Label
Un Label est un contrôle "inerte", qui sert à
afficher un texte sur une Form.
oName : Nom de l’objet
oCaption : évidemment
oAlignment : qui règle l’alignement du texte
(gauche, centré, droite)
oBorderStyle : qui désigne le type de bordure
46. Un textbox (zone de texte)
Ces zones (de la classe "TextBox" pour VB)
peuvent servir à saisir une information.
toute information contenue dans une zone
de texte est obligatoirement de type texte !
Propriétés :
oText: C’est la propriété qui désigne son contenu.
oMultiline : autorise ou non l’écriture sur plusieurs
lignes
oScrollbars : fait figurer dans la TextBox une barre de
défilement horizontale ou verticale (ou les deux)
oPasswordChar : crypte le texte entré par le caractère
stipulé (généralement, on choisit le caractère *)
oMaxLength : limite le nombre de caractères qu’il est
possible de saisir dans la zone de texte.
47. Accéder aux objets
Pour accéder aux informations (données)
dans le formulaire, on utilise la syntaxe
suivante
Nomobjet.propriété
Exemple
Somme.text=5
48. Les checkbox
Les " cases à cocher " (CheckBox): Elles sont
carrées, et indépendantes les unes des
autres, si l'utilisateur coche une case , cela n'a
pas d'influence sur les autres cases du
formulaire, qu'elles soient regroupées dans un
cadre pour faire plus joli ou non
oChecked: Indique si la case est cochée
oCheckState: Indique l'état de la case à cocher
49. Les boutons radios
Les " boutons radio " (RadioButton): Ils sont
ronds et font toujours partie d'un groupe (Ils
sont dans une fenêtre ou dessinés dans un
objet GroupBox ). Ce groupe est
indispensable, car au sein d'un groupe de
RadioButton, un seul bouton peut être coché à
la fois : si l'utilisateur en coche un, les autres se
décochent
50. LeLe bouton est le composant le plus
bouton
important puisque c'est grâce à lui que
l'utilisateur pourra interagir avec le
programme. Un bouton permet
essentiellement de valider ou d'annuler une
fonction.
oText: Le texte du bouton
oTextAlign: L'alignement du texte du bouton
oEnabled Indique si le contrôle est activé ou
pas
oVisible Indique si le contrôle est visible ou pas
oName Le nom du contrôle utilisé dans le
codage
oSize La taille du contrôle en pixels
51. La Combobox
Les ComboBox sont des menus
déroulants. Elles permettent de choisir une
option parmi plusieurs
oSorted: Indique comment sont triés les
éléments de la liste
oItems: Permet d'ajouter les éléments dans la
liste déroulante
52. listbox
Le contrôle ListBox affiche une liste d'éléments
(d'objets) dans laquelle l'utilisateur peut faire un
ou plusieurs choix.
Exemple de codes
Vider la ListBox
ListBox1.Items.Clear()
Ajouter un ou des éléments
ListBox1.Items.Add(" quelquechose")
Ajouter un tableau
oDim t() As String {"Franc", "Norgege", " Thaïlande" }
oMe.ListBox1.Items.AddRange(t)
53. La fonction MessageBox
C'est une fonction qui affiche un message
dans une boîte de dialogue, attend que
l'utilisateur clique sur un bouton (Ok ou Oui-
Non..), puis retourne si on le désire, le nom du
bouton cliqué par l'utilisateur.
On utilise la méthode Show pour afficher la
boite.
On doit fournir le texte à afficher, on peut aussi
fournir le titre dans la barre, le type de bouton
, le type d'icône et le bouton par défaut, une
option , la présence d'un bouton d'aide.
54. La fonction MessageBox:
Exemple
MessageBox.show(Texte,Titre, TypeBouton ,
Icone, BoutonParDéfaut, Option, Bouton aide)
MessageBox.Show("bonjour", "Programme",
MessageBoxButtons.YesNo,
MessageBoxIcon.Error, _
MessageBoxDefaultButton.Button1,
MessageBoxOptions.RightAlign, True)
55. InputBox
C'est une fonction qui permet d'ouvrir une
fenêtre qui pose une question :
Elle retourne la réponse tapée par l'utilisateur.
Le retour est effectué dans une variable
String.
Dim Nom As String Nom =
InputBox("Bonjour","Tapez votre nom ?")
56. procédures événementielles
A chaque objet créé peuvent correspondre
autant de procédures que d’événements
possibles survenant sur cet objet
Double click : la procédure gérant
l’événement le plus courant pour l’objet
considéré vient d’être créée
CODE CREE ->
Private Sub NomObjet_Evenement()
…
End Sub
57. procédures événementielles
Private signifie que la procédure n’est
utilisable que pour la Form considérée (et
pas pour d’autres objets situés sur d’autres
Form). On peut aussi créer des procédures
Public
End Sub marque la fin de la procédure en
question (mais pas la fin de l’application).
58. Combobox (VB6)
Une combox est un contrôle qui permet de choisur un élèment d’une liste
Une liste peut être ajouté graphiquement (menu propiétés) ou avec le code
source
Chaque item d’une combobox comporte: le nom et un dataitem
la propriété ItemData d'un contrôle ComboBox peut être définie au moment du
design dans la fenêtre Propriétés pour associer un Integer à un
élément ComboBox
59. Comboxbox: ajouter un item et definir sa
valeur
cbonom.AddItem " mehdi "
cbonom.ItemData(cboFood.NewIndex) = 02328545
cbonom.AddItem " sihem"
cbonom.ItemData(cboFood.NewIndex) = 08254789
cbonom.AddItem " gaith"
cbonom.ItemData(cboFood.NewIndex) = 105
la propriété NewIndex était utilisée pour récupérer l'index du dernier élément
ajouté à un contrôle ComboBox
60. Combobox: évènement et propriétés
Cet évènement se déclenche quand on clique sur la combobox
Pour récupérer l’indexe de l’élément seléctionnée nous utilisons la propriété :
listIndex
Pour récupérer le nombre d’éléments on utilise la propriété ListCount
Pour accéder à un élément d’indice i, on utilise la propriété
List(intX)
L’indice de l’item sélectionné est récupéré grâce à ListIndex
61. exercice
Ecrire une application VB qui contient
Une combobox
Une zone de texte (nom)
Un bouton chercher
Quand l’utilisateur appui sur le bouton chercher , le programme cherche si le
nom tapé dans la zone de texte existe dans les éléments de la listbox et affiche
le message qui convient
Traiter les cas particuliers (liste vide, zone de texte vide ….)