Programmation évènementielle
         avec VB
   ISIGK, 2011
   Adel ESSAFI
   adel.safi@imag.fr
   http://www.slideshare.net/adelessafi
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
LANGAGES DE PROGRAMMATION
• Génération I: Les langages de première
  génération s'adressaient aux ordinateurs en
  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.
LANGAGES DE PROGRAMMATION
•   Tendances:
    o   Les langages de programmation Internel
    o   Les langages basé sur XML (markup)
HISTORIQUE DU LANGAGE VISUAL
BASIC
•   Le BASIC (Beginner's All-purpose Symbolic
    Instruction Code, 1963)
•   Principes de concept:
    o facile d'utilisation pour les débutants
    o un langage généraliste (All-purpose) ;
    o autoriser l'ajout de fonctionnalités pour les
    o interactif ;
    o fournir des messages d'erreur clairs et conviviaux ;
    o avoir un délai de réaction faible pour les petits
      programmes ;
    o Indépendant du matériel
    o isoler l'utilisateur du système d'exploitation.
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
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:
    o   Version 2.0 en 2005
    o   Version 3.5 en 2007
    o   Version 4 en 2010
•   Visual studio et framework
    o VS 2003 (Framework 1.1), VS 2005
      (Framework 2.0), VS 2008 (Framework 3.5)
      et VS 2010 (Framework 4.0).
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 »
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
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
VARIABLES
•   Dim MaVariable As type
•   Les types disponibles:
    o   Boolean
    o   Integer
    o   Double
    o   String
    o   Date Stocke une date et son heure sous la
        forme « 12/06/2009 11:10:20 ».
VARIABLES : EXEMPLES
D’UTILISATION
•   Dim MaVariable As Integer
•   MaVariable = 10
•   Console.Write(MaVariable)
•   Quelques opérations: Addition (+)
    Soustraction (-) Multiplication (*) Division( /)
    Division entière () Puissance (^) Modulo
    (Mod)
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
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:
Public Structure Adresse
 Dim Numero As Integer
 Dim Rue As String
Dim Ville As String
End Structure

Puis dans une procédure il faut déclarer la variable :
Dim MonAdresse As Adresse
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"
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"
LA FONCTION WRITE
•   Write: affiche sans retour à la ligne
•   Writeline : affiche avec retour à la ligne
•   & : concaténer deux chaines
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)
   'Crée une pause factice de la console
   Console.ReadLine()
End Sub
End Module
STRUCTURE CONDITIONNELLE
•   If - end if : structure classique
•   If – else – end if
•   If –elseif – else - end if
LA STRUCTURE SELECT
Select Case MaVariable
Case 1
'Si MaVariable = 1
Case 2
'Si MaVariable = 2 Case
Else 'Si MaVariable <> 1 et <> 2
End Select
STRUCTURE DO WHILE
Do
'Instruction exécutée au moins une fois
Loop While MaVariable = 10
STRUCTURE WHILE
While MaVariable = 10
'Exécuté tant que MaVariable = 10
End While
LA BOUCLE FOR

For x As Integer = 0 to 10 step 2
'Instruction à exécuter 5 fois
Next
TABLEAUX
 •   1 dimension
     o   Dim MonTableau(4) As Integer
 •   2 dimensions
     o   Dim MonTableau(3,4) As Integer
 •   3 dimensions
     o   Dim 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 ».
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
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
OPÉRATIONS SUR LES TABLEAUX:
AFFICHAGE
'afficher les éléments un par un
for i=0 to N
   console.write(t(i))
Next
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
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
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
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
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
 • ...........................................
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
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.
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"
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' .
    o   Les 'sub' commencent par le mot clé 'sub' puis finissent par 'end sub'
        et ne retournent aucune valeur
    o   Les fonctions qui débutent par 'function' puis finissent par 'end
        function' et qui retournent une valeur précise.
LES FONCTIONS
 •   Syntaxe
Function NOMF(ByVal Valeur1 As Integer, ByVal Valeur2 As Integer)
As Integer
Instructions ……
Return Resultat
End Function
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.
FONCTIONS/PROCEDURE ET STRUCTURES
Sub AfficheAdresse( ByVal Une Adresse As Adresse)
...Imprimer l'adresse
End sub
LA BOUCLE FOR EACH
Structure générale :
For Each Item In Collection'boucleNext Item
Exemple
dim tab(10) as integer
for each v in tab
s=s+v
next v
PARTIE II : PROGRAMMATION
ÉVÉNEMENTIELLE
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
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)
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
UN LABEL
•   Un Label est un contrôle "inerte", qui sert à
    afficher un texte sur une Form.
    o Name : Nom de l’objet
    o Caption : évidemment
    o Alignment : qui règle l’alignement du texte
      (gauche, centré, droite)
    o BorderStyle : qui désigne le type de bordure
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 :
    o   Text: C’est la propriété qui désigne son contenu.
    o   Multiline : autorise ou non l’écriture sur plusieurs lignes
    o   Scrollbars : fait figurer dans la TextBox une barre de
        défilement horizontale ou verticale (ou les deux)
    o   PasswordChar : crypte le texte entré par le caractère
        stipulé (généralement, on choisit le caractère *)
    o   MaxLength : limite le nombre de caractères qu’il est
        possible de saisir dans la zone de texte.
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
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).
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
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
    o   Checked: Indique si la case est cochée
    o   CheckState: Indique l'état de la case à cocher
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
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.
    o Text: Le texte du bouton
    o TextAlign: L'alignement du texte du bouton
    o Enabled Indique si le contrôle est activé ou pas
    o Visible Indique si le contrôle est visible ou pas
    o Name Le nom du contrôle utilisé dans le
      codage
    o Size La taille du contrôle en pixels
LA COMBOBOX
•   Les ComboBox sont des menus déroulants.
    Elles permettent de choisir une option parmi
    plusieurs
    o Sorted: Indique comment sont triés les
      éléments de la liste
    o Items: Permet d'ajouter les éléments dans la
      liste déroulante
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
    o   Dim t() As String {"Franc", "Norgege", " Thaïlande" }
    o   Me.ListBox1.Items.AddRange(t)
LA LISTVIEW
•   Il permet d'ajouter en ligne des éléments.
    o Sorted: Indique comment sont triés les éléments
      de la liste
    o Items: Permet d'ajouter les éléments dans la
      ListBox
    o Multicolumn: indique si les elements peuvent etre
      mis en plusieurs colonnes ou pas
LA TREEVIEW
•   représente une arborescence avec
    plusieurs niveaux de nœuds. Dans une
    TreeView, il y a un nœud racine, suivit de
    nœuds puis de sous nœuds
    o DrawMode: Indique si le code gère le dessin
      des éléments de la liste
    o FullRowSelect Indique si la surbrillance s'étend
      sur la largeur du TreeView
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.
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)
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 ?")

Vbisigk

  • 1.
    Programmation évènementielle avec VB ISIGK, 2011 Adel ESSAFI adel.safi@imag.fr http://www.slideshare.net/adelessafi
  • 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.
    LANGAGES DE PROGRAMMATION •Génération I: Les langages de première génération s'adressaient aux ordinateurs en 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.
  • 4.
    LANGAGES DE PROGRAMMATION • Tendances: o Les langages de programmation Internel o Les langages basé sur XML (markup)
  • 5.
    HISTORIQUE DU LANGAGEVISUAL BASIC • Le BASIC (Beginner's All-purpose Symbolic Instruction Code, 1963) • Principes de concept: o facile d'utilisation pour les débutants o un langage généraliste (All-purpose) ; o autoriser l'ajout de fonctionnalités pour les o interactif ; o fournir des messages d'erreur clairs et conviviaux ; o avoir un délai de réaction faible pour les petits programmes ; o Indépendant du matériel o isoler 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: o Version 2.0 en 2005 o Version 3.5 en 2007 o Version 4 en 2010 • Visual studio et framework o VS 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 ETFONCTIONS • 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: o Boolean o Integer o Double o String o Date Stocke une date et son heure sous la forme « 12/06/2009 11:10:20 ».
  • 12.
    VARIABLES : EXEMPLES D’UTILISATION • Dim MaVariable As Integer • MaVariable = 10 • Console.Write(MaVariable) • Quelques opérations: Addition (+) Soustraction (-) Multiplication (*) Division( /) Division entière () Puissance (^) Modulo (Mod)
  • 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 estutilisée comme conteneur pour un petit jeu de variables. Permet de regrouper des données de type différent: EXEMPLE: Public Structure Adresse Dim Numero As Integer Dim Rue As String Dim Ville As String End Structure Puis dans une procédure il faut déclarer la variable : Dim MonAdresse As Adresse
  • 15.
    UTILISATION La variable MonAdressecontient 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 FAITCE 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) 'Crée une pause factice de la console Console.ReadLine() End Sub End Module
  • 19.
    STRUCTURE CONDITIONNELLE • If - end if : structure classique • If – else – end if • If –elseif – else - end if
  • 20.
    LA STRUCTURE SELECT SelectCase MaVariable Case 1 'Si MaVariable = 1 Case 2 'Si MaVariable = 2 Case Else 'Si MaVariable <> 1 et <> 2 End Select
  • 21.
    STRUCTURE DO WHILE Do 'Instructionexécutée au moins une fois Loop While MaVariable = 10
  • 22.
    STRUCTURE WHILE While MaVariable= 10 'Exécuté tant que MaVariable = 10 End While
  • 23.
    LA BOUCLE FOR Forx As Integer = 0 to 10 step 2 'Instruction à exécuter 5 fois Next
  • 24.
    TABLEAUX • 1 dimension o Dim MonTableau(4) As Integer • 2 dimensions o Dim MonTableau(3,4) As Integer • 3 dimensions o Dim 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 DANSLES 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 DANSLES 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 LESTABLEAUX: AFFICHAGE 'afficher les éléments un par un for i=0 to N console.write(t(i)) Next
  • 28.
    RECHERCHE DANS UNTABLEAU 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 LESTABLEAUX: 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 LESTABLEAUX : 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 LESTABLEAUX: 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 Collectionspermettent 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 TYPEARRAY 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' . o Les 'sub' commencent par le mot clé 'sub' puis finissent par 'end sub' et ne retournent aucune valeur o Les 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 Passagepar 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.
  • 39.
    FONCTIONS/PROCEDURE ET STRUCTURES SubAfficheAdresse( ByVal Une Adresse As Adresse) ...Imprimer l'adresse End sub
  • 40.
    LA BOUCLE FOREACH Structure générale : For Each Item In Collection'boucleNext Item Exemple dim tab(10) as integer for each v in tab s=s+v next v
  • 41.
    PARTIE II :PROGRAMMATION ÉVÉNEMENTIELLE
  • 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. o Name : Nom de l’objet o Caption : évidemment o Alignment : qui règle l’alignement du texte (gauche, centré, droite) o BorderStyle : qui désigne le type de bordure
  • 46.
    UN TEXTBOX (ZONEDE 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 : o Text: C’est la propriété qui désigne son contenu. o Multiline : autorise ou non l’écriture sur plusieurs lignes o Scrollbars : fait figurer dans la TextBox une barre de défilement horizontale ou verticale (ou les deux) o PasswordChar : crypte le texte entré par le caractère stipulé (généralement, on choisit le caractère *) o MaxLength : limite le nombre de caractères qu’il est possible de saisir dans la zone de texte.
  • 47.
    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
  • 48.
    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).
  • 49.
    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
  • 50.
    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 o Checked: Indique si la case est cochée o CheckState: Indique l'état de la case à cocher
  • 51.
    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
  • 52.
    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. o Text: Le texte du bouton o TextAlign: L'alignement du texte du bouton o Enabled Indique si le contrôle est activé ou pas o Visible Indique si le contrôle est visible ou pas o Name Le nom du contrôle utilisé dans le codage o Size La taille du contrôle en pixels
  • 53.
    LA COMBOBOX • Les ComboBox sont des menus déroulants. Elles permettent de choisir une option parmi plusieurs o Sorted: Indique comment sont triés les éléments de la liste o Items: Permet d'ajouter les éléments dans la liste déroulante
  • 54.
    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 o Dim t() As String {"Franc", "Norgege", " Thaïlande" } o Me.ListBox1.Items.AddRange(t)
  • 55.
    LA LISTVIEW • Il permet d'ajouter en ligne des éléments. o Sorted: Indique comment sont triés les éléments de la liste o Items: Permet d'ajouter les éléments dans la ListBox o Multicolumn: indique si les elements peuvent etre mis en plusieurs colonnes ou pas
  • 56.
    LA TREEVIEW • représente une arborescence avec plusieurs niveaux de nœuds. Dans une TreeView, il y a un nœud racine, suivit de nœuds puis de sous nœuds o DrawMode: Indique si le code gère le dessin des éléments de la liste o FullRowSelect Indique si la surbrillance s'étend sur la largeur du TreeView
  • 57.
    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.
  • 58.
    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)
  • 59.
    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 ?")