SlideShare une entreprise Scribd logo
1  sur  59
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 ?")

Contenu connexe

Tendances

C# et .NET : Enigmes et puzzles
C# et .NET : Enigmes  et puzzlesC# et .NET : Enigmes  et puzzles
C# et .NET : Enigmes et puzzlesMicrosoft
 
Javascript un langage supérieur
Javascript un langage supérieurJavascript un langage supérieur
Javascript un langage supérieurFredy Fadel
 
Python For Data Science - French Course
Python For Data Science - French CoursePython For Data Science - French Course
Python For Data Science - French CourseHaytam EL YOUSSFI
 
Java - Support etudiant - Tronc Commun Deuxième année ISIMA - 2018
Java - Support etudiant - Tronc Commun Deuxième année ISIMA - 2018Java - Support etudiant - Tronc Commun Deuxième année ISIMA - 2018
Java - Support etudiant - Tronc Commun Deuxième année ISIMA - 2018Loic Yon
 
Chapitre5: Classes et objets
Chapitre5: Classes et objetsChapitre5: Classes et objets
Chapitre5: Classes et objetsAziz Darouichi
 
Javascript pour les Développeurs WEB
Javascript pour les Développeurs WEBJavascript pour les Développeurs WEB
Javascript pour les Développeurs WEBAbbes Rharrab
 
Initiation au code : Ateliers en C# (applications desktop et mobile native)
Initiation au code : Ateliers en C# (applications desktop et mobile native)Initiation au code : Ateliers en C# (applications desktop et mobile native)
Initiation au code : Ateliers en C# (applications desktop et mobile native)Stéphanie Hertrich
 
C# 5 versus Java 8... Quand C++ 11 s'invite à la fête
C# 5 versus Java 8... Quand C++ 11 s'invite à la fêteC# 5 versus Java 8... Quand C++ 11 s'invite à la fête
C# 5 versus Java 8... Quand C++ 11 s'invite à la fêteFabrice JEAN-FRANCOIS
 
Présentation de ECMAScript 6
Présentation de ECMAScript 6Présentation de ECMAScript 6
Présentation de ECMAScript 6Julien CROUZET
 
Debutermatlab
DebutermatlabDebutermatlab
Debutermatlabnejmzad
 
Les fondamentaux du langage C
Les fondamentaux du langage CLes fondamentaux du langage C
Les fondamentaux du langage CAbdoulaye Dieng
 
Formation C# - Cours 2 - Programmation procédurale
Formation C# - Cours 2 - Programmation procéduraleFormation C# - Cours 2 - Programmation procédurale
Formation C# - Cours 2 - Programmation procéduralekemenaran
 
Introduction à l'objet - Deuxième année ISIMA
Introduction à l'objet - Deuxième année ISIMAIntroduction à l'objet - Deuxième année ISIMA
Introduction à l'objet - Deuxième année ISIMALoic Yon
 
Csharp1 : quelques elements de base
Csharp1 :  quelques elements de baseCsharp1 :  quelques elements de base
Csharp1 : quelques elements de baseAbdoulaye Dieng
 

Tendances (20)

C# et .NET : Enigmes et puzzles
C# et .NET : Enigmes  et puzzlesC# et .NET : Enigmes  et puzzles
C# et .NET : Enigmes et puzzles
 
C# langage & syntaxe
C#   langage & syntaxeC#   langage & syntaxe
C# langage & syntaxe
 
Université des langages scala
Université des langages   scalaUniversité des langages   scala
Université des langages scala
 
Javascript un langage supérieur
Javascript un langage supérieurJavascript un langage supérieur
Javascript un langage supérieur
 
Python For Data Science - French Course
Python For Data Science - French CoursePython For Data Science - French Course
Python For Data Science - French Course
 
Java - Support etudiant - Tronc Commun Deuxième année ISIMA - 2018
Java - Support etudiant - Tronc Commun Deuxième année ISIMA - 2018Java - Support etudiant - Tronc Commun Deuxième année ISIMA - 2018
Java - Support etudiant - Tronc Commun Deuxième année ISIMA - 2018
 
Chapitre5: Classes et objets
Chapitre5: Classes et objetsChapitre5: Classes et objets
Chapitre5: Classes et objets
 
Javascript pour les Développeurs WEB
Javascript pour les Développeurs WEBJavascript pour les Développeurs WEB
Javascript pour les Développeurs WEB
 
Initiation au code : Ateliers en C# (applications desktop et mobile native)
Initiation au code : Ateliers en C# (applications desktop et mobile native)Initiation au code : Ateliers en C# (applications desktop et mobile native)
Initiation au code : Ateliers en C# (applications desktop et mobile native)
 
C# 5 versus Java 8... Quand C++ 11 s'invite à la fête
C# 5 versus Java 8... Quand C++ 11 s'invite à la fêteC# 5 versus Java 8... Quand C++ 11 s'invite à la fête
C# 5 versus Java 8... Quand C++ 11 s'invite à la fête
 
Présentation de ECMAScript 6
Présentation de ECMAScript 6Présentation de ECMAScript 6
Présentation de ECMAScript 6
 
Debutermatlab
DebutermatlabDebutermatlab
Debutermatlab
 
Change mind about JS
Change mind about JSChange mind about JS
Change mind about JS
 
Les fondamentaux du langage C
Les fondamentaux du langage CLes fondamentaux du langage C
Les fondamentaux du langage C
 
Formation C# - Cours 2 - Programmation procédurale
Formation C# - Cours 2 - Programmation procéduraleFormation C# - Cours 2 - Programmation procédurale
Formation C# - Cours 2 - Programmation procédurale
 
Composition, agrégation et immuabilité
Composition, agrégation et immuabilitéComposition, agrégation et immuabilité
Composition, agrégation et immuabilité
 
Introduction à l'objet - Deuxième année ISIMA
Introduction à l'objet - Deuxième année ISIMAIntroduction à l'objet - Deuxième année ISIMA
Introduction à l'objet - Deuxième année ISIMA
 
Tp 1 introduction à matlab
Tp 1 introduction à matlabTp 1 introduction à matlab
Tp 1 introduction à matlab
 
Python avancé : Classe et objet
Python avancé : Classe et objetPython avancé : Classe et objet
Python avancé : Classe et objet
 
Csharp1 : quelques elements de base
Csharp1 :  quelques elements de baseCsharp1 :  quelques elements de base
Csharp1 : quelques elements de base
 

En vedette

Environnement de développement de bases de données
Environnement de développement de bases de donnéesEnvironnement de développement de bases de données
Environnement de développement de bases de donnéesISIG
 
les Tests unitaires
les Tests unitairesles Tests unitaires
les Tests unitairesISIG
 
Notes de cours d'ordonnancement
Notes de cours d'ordonnancementNotes de cours d'ordonnancement
Notes de cours d'ordonnancementISIG
 
lpi 101 notes de cours
lpi 101 notes de courslpi 101 notes de cours
lpi 101 notes de coursISIG
 
Le microprocesseur
Le microprocesseurLe microprocesseur
Le microprocesseurISIG
 
SysML adoption in France
SysML adoption in FranceSysML adoption in France
SysML adoption in FrancePascal Roques
 
Timing verification of automotive communication architecture using quantile ...
Timing verification of automotive communication  architecture using quantile ...Timing verification of automotive communication  architecture using quantile ...
Timing verification of automotive communication architecture using quantile ...RealTime-at-Work (RTaW)
 
Modeling the OCL Standard Library
Modeling the OCL Standard LibraryModeling the OCL Standard Library
Modeling the OCL Standard LibraryEdward Willink
 
OCCIware Contribution to the EU consultation on Cloud Computing Research Inno...
OCCIware Contribution to the EU consultation on Cloud Computing Research Inno...OCCIware Contribution to the EU consultation on Cloud Computing Research Inno...
OCCIware Contribution to the EU consultation on Cloud Computing Research Inno...OCCIware
 
Developpement mobile vs open source
Developpement mobile vs open sourceDeveloppement mobile vs open source
Developpement mobile vs open sourceKorteby Farouk
 
Model Transformation A Personal Perspective
Model Transformation A Personal PerspectiveModel Transformation A Personal Perspective
Model Transformation A Personal PerspectiveEdward Willink
 
Prfc rhapsody simulation_1.0
Prfc rhapsody simulation_1.0Prfc rhapsody simulation_1.0
Prfc rhapsody simulation_1.0Pascal Roques
 
Local Optimizations in Eclipse QVTc and QVTr using the Micro-Mapping Model of...
Local Optimizations in Eclipse QVTc and QVTr using the Micro-Mapping Model of...Local Optimizations in Eclipse QVTc and QVTr using the Micro-Mapping Model of...
Local Optimizations in Eclipse QVTc and QVTr using the Micro-Mapping Model of...Edward Willink
 
OCCIware: extensible and standard-based XaaS platform to manage everything in...
OCCIware: extensible and standard-based XaaS platform to manage everything in...OCCIware: extensible and standard-based XaaS platform to manage everything in...
OCCIware: extensible and standard-based XaaS platform to manage everything in...OCCIware
 
Model Transformation: A survey of the state of the art
Model Transformation: A survey of the state of the artModel Transformation: A survey of the state of the art
Model Transformation: A survey of the state of the artTom Mens
 
La &amp; edm in practice
La &amp; edm in practiceLa &amp; edm in practice
La &amp; edm in practicebharati k
 

En vedette (20)

Environnement de développement de bases de données
Environnement de développement de bases de donnéesEnvironnement de développement de bases de données
Environnement de développement de bases de données
 
les Tests unitaires
les Tests unitairesles Tests unitaires
les Tests unitaires
 
Notes de cours d'ordonnancement
Notes de cours d'ordonnancementNotes de cours d'ordonnancement
Notes de cours d'ordonnancement
 
lpi 101 notes de cours
lpi 101 notes de courslpi 101 notes de cours
lpi 101 notes de cours
 
Le microprocesseur
Le microprocesseurLe microprocesseur
Le microprocesseur
 
SysML adoption in France
SysML adoption in FranceSysML adoption in France
SysML adoption in France
 
OCL 2.5 plans
OCL 2.5 plansOCL 2.5 plans
OCL 2.5 plans
 
UMLX and QVT and ATL
UMLX and QVT and ATLUMLX and QVT and ATL
UMLX and QVT and ATL
 
Timing verification of automotive communication architecture using quantile ...
Timing verification of automotive communication  architecture using quantile ...Timing verification of automotive communication  architecture using quantile ...
Timing verification of automotive communication architecture using quantile ...
 
Modeling the OCL Standard Library
Modeling the OCL Standard LibraryModeling the OCL Standard Library
Modeling the OCL Standard Library
 
OCCIware Contribution to the EU consultation on Cloud Computing Research Inno...
OCCIware Contribution to the EU consultation on Cloud Computing Research Inno...OCCIware Contribution to the EU consultation on Cloud Computing Research Inno...
OCCIware Contribution to the EU consultation on Cloud Computing Research Inno...
 
Developpement mobile vs open source
Developpement mobile vs open sourceDeveloppement mobile vs open source
Developpement mobile vs open source
 
Java vs .Net
Java vs .NetJava vs .Net
Java vs .Net
 
Model Transformation A Personal Perspective
Model Transformation A Personal PerspectiveModel Transformation A Personal Perspective
Model Transformation A Personal Perspective
 
Prfc rhapsody simulation_1.0
Prfc rhapsody simulation_1.0Prfc rhapsody simulation_1.0
Prfc rhapsody simulation_1.0
 
Local Optimizations in Eclipse QVTc and QVTr using the Micro-Mapping Model of...
Local Optimizations in Eclipse QVTc and QVTr using the Micro-Mapping Model of...Local Optimizations in Eclipse QVTc and QVTr using the Micro-Mapping Model of...
Local Optimizations in Eclipse QVTc and QVTr using the Micro-Mapping Model of...
 
OCCIware: extensible and standard-based XaaS platform to manage everything in...
OCCIware: extensible and standard-based XaaS platform to manage everything in...OCCIware: extensible and standard-based XaaS platform to manage everything in...
OCCIware: extensible and standard-based XaaS platform to manage everything in...
 
Model Transformation: A survey of the state of the art
Model Transformation: A survey of the state of the artModel Transformation: A survey of the state of the art
Model Transformation: A survey of the state of the art
 
Cvl
CvlCvl
Cvl
 
La &amp; edm in practice
La &amp; edm in practiceLa &amp; edm in practice
La &amp; edm in practice
 

Similaire à Vbisigk

Similaire à Vbisigk (20)

Initiation r
Initiation rInitiation r
Initiation r
 
Tp1 matlab
Tp1 matlab Tp1 matlab
Tp1 matlab
 
Cours de Matlab
Cours de MatlabCours de Matlab
Cours de Matlab
 
Mat lab1
Mat lab1Mat lab1
Mat lab1
 
Presentation Csharp et winforms
Presentation Csharp et winformsPresentation Csharp et winforms
Presentation Csharp et winforms
 
De Java à .NET
De Java à .NETDe Java à .NET
De Java à .NET
 
js---Partie1----.pdf
js---Partie1----.pdfjs---Partie1----.pdf
js---Partie1----.pdf
 
chap3 conception et implementation
chap3 conception et implementation chap3 conception et implementation
chap3 conception et implementation
 
Tour Horizont.Net
Tour Horizont.NetTour Horizont.Net
Tour Horizont.Net
 
Compte rendu Blend Web Mix 2015
Compte rendu Blend Web Mix 2015Compte rendu Blend Web Mix 2015
Compte rendu Blend Web Mix 2015
 
Apple : iOS
Apple : iOSApple : iOS
Apple : iOS
 
Javascript - Fonctions : que fait ce code ?
Javascript - Fonctions : que fait ce code ?Javascript - Fonctions : que fait ce code ?
Javascript - Fonctions : que fait ce code ?
 
Deuxième partie.pptx
Deuxième partie.pptxDeuxième partie.pptx
Deuxième partie.pptx
 
Partie1 TypeScript
Partie1 TypeScriptPartie1 TypeScript
Partie1 TypeScript
 
Tp l3
Tp l3Tp l3
Tp l3
 
C++ 11 - Tech Days 2014 in Paris
C++ 11 - Tech Days 2014 in ParisC++ 11 - Tech Days 2014 in Paris
C++ 11 - Tech Days 2014 in Paris
 
Bonnes pratiques pour apprivoiser le C++11 avec Visual C++
Bonnes pratiques pour apprivoiser le C++11 avec Visual C++Bonnes pratiques pour apprivoiser le C++11 avec Visual C++
Bonnes pratiques pour apprivoiser le C++11 avec Visual C++
 
Java1_BasesLangage.pdf
Java1_BasesLangage.pdfJava1_BasesLangage.pdf
Java1_BasesLangage.pdf
 
Java1_BasesLangage.pdf
Java1_BasesLangage.pdfJava1_BasesLangage.pdf
Java1_BasesLangage.pdf
 
C# 7 - Nouveautés
C# 7 - NouveautésC# 7 - Nouveautés
C# 7 - Nouveautés
 

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 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.
  • 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 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: 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 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
  • 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) '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 Select Case 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 'Instruction exé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 For x 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 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' . 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 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.
  • 39. FONCTIONS/PROCEDURE ET STRUCTURES Sub AfficheAdresse( ByVal Une Adresse As Adresse) ...Imprimer l'adresse End sub
  • 40. 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
  • 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 (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.
  • 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 ?")