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. génération s'adressaient aux ordinateurs en
Langages de programmation
langage binaire (des 0 et des 1).
Génération II: le langage 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
46. Un Label
Un Label est un contrôle "inerte", qui sert
•
à afficher un texte sur une Form.
•Name : Nom de l’objet
•Caption : évidemment
•Alignment : qui règle l’alignement du
texte (gauche, centré, droite)
•BorderStyle : qui désigne le type de
bordure
48. Un textbox (zone de texte)
Ces zones (de la classe "TextBox" pour VB)
peuvent servir à saisir une information (un texte).
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.
49. Le bouton
Le bouton est le composant le plus 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
50. 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
ComboBox1.SelectedIndex=1
‘pour sélectionner l’element à afficher
52. 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
•Checked: Indique si la case est cochée
•CheckState: Indique l'état de la case à cocher
54. 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
56. 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
58. La 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)
59. procédures événementielles
• un événement est un message envoyé par un objet qui annonce
que quelque chose s'est produit
•A chaque objet créé peuvent correspondre autant de procédures
que d’événements possibles survenant sur cet objet
•Double click sur l’objet : 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 RadioButton1_CheckedChanged(ByVal sender As
System.Object, ByVal e As System.EventArgs) Handles
RadioButton1.CheckedChanged
End Sub
60. 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).
Les évènements, dans le Framework .Net, utilisent tous ou presque,
ce type de signature :
•Sender représente l’instance qui a lancé cet évènement.
•e, de type EventArgs ou héritant d’EventArgs, sert à transmettre des
informations supplémentaires.
61. 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.
62. 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)
63. 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 ?")