vbisigk

59
Programmation évènementielle avec VB ISIGK, 2011 Adel ESSAFI [email protected] http://www.slideshare.net/ adelessafi

Upload: isig

Post on 21-May-2015

1.585 views

Category:

Self Improvement


0 download

TRANSCRIPT

Page 1: Vbisigk

Programmation évènementielle avec VB

ISIGK, 2011Adel [email protected]://www.slideshare.net/adelessafi

Page 2: Vbisigk

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

Page 3: Vbisigk

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.

Page 4: Vbisigk

LANGAGES DE PROGRAMMATION• Tendances:

o Les langages de programmation Internelo Les langages basé sur XML (markup)

Page 5: Vbisigk

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ébutantso un langage généraliste (All-purpose) ;o autoriser l'ajout de fonctionnalités pour leso 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érielo isoler l'utilisateur du système d'exploitation.

Page 6: Vbisigk

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

Page 7: Vbisigk

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 2005o Version 3.5 en 2007o Version 4 en 2010

• Visual studio et frameworko VS 2003 (Framework 1.1), VS 2005

(Framework 2.0), VS 2008 (Framework 3.5) et VS 2010 (Framework 4.0).

Page 8: Vbisigk

PREMIER PROGRAMME• Créer un nouveau projet (application console)

Voici le code que nous devons obtenirModule 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 »

Page 9: Vbisigk

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

Page 10: Vbisigk

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

Page 11: Vbisigk

VARIABLES• Dim MaVariable As type• Les types disponibles:

o Booleano Integer o Double o String o Date Stocke une date et son heure sous la

forme « 12/06/2009 11:10:20 ».

Page 12: Vbisigk

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)

Page 13: Vbisigk

LES CONSTANTES • Une constance est un objet dont la valeur

ne change pas au cours de l’exécutionDéclaration:

Const NomConstante As Type = ValeurConst LONGUEURTABLEAU As Integer = 9

Page 14: Vbisigk

STRUCTURESUne 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 StringDim Ville As StringEnd Structure Puis dans une procédure il faut déclarer la variable :Dim MonAdresse As Adresse

Page 15: Vbisigk

UTILISATIONLa variable MonAdresse contientun 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=2MonAdresse.Rue= "Grande rue"MonAdresse.Ville= "Lyon" 

Page 16: Vbisigk

UTILISATIONMot clé With pour ne pas avoir à répéter le nom de la variableWith MonAdresse.Rue= "Grande rue".Ville= "Lyon"End With  Structures et tableauxDim Adresses(99) as Adresse  'Permet de travailler sur un tableau de 100 adresses Adresses(33).Rue="Place de la mairie"

Page 17: Vbisigk

LA FONCTION WRITE• Write: affiche sans retour à la ligne• Writeline : affiche avec retour à la ligne• & : concaténer deux chaines

Page 18: Vbisigk

EXEMPLE: QUE FAIT CE PROGRAMMEModule 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

Page 19: Vbisigk

STRUCTURE CONDITIONNELLE• If - end if : structure classique• If – else – end if• If –elseif – else - end if

Page 20: Vbisigk

LA STRUCTURE SELECTSelect Case MaVariable Case 1 'Si MaVariable = 1 Case 2 'Si MaVariable = 2 Case Else 'Si MaVariable <> 1 et <> 2 End Select

Page 21: Vbisigk

STRUCTURE DO WHILEDo 'Instruction exécutée au moins une fois Loop While MaVariable = 10

Page 22: Vbisigk

STRUCTURE WHILEWhile MaVariable = 10 'Exécuté tant que MaVariable = 10 End While

Page 23: Vbisigk

LA BOUCLE FOR

For x As Integer = 0 to 10 step 2'Instruction à exécuter 5 fois Next

Page 24: Vbisigk

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 TABLEAULe nombre de cases d'un tableau est toujours « indice + 1 ».Réciproquement, l'index de sa dernière case est « taille - 1 ».

Page 25: Vbisigk

LES TABLEAUX DANS LES STRUCTURESEn 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 DriveInfoDim 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 SubEnd Structure 

Page 26: Vbisigk

LES TABLEAUX DANS LES STRUCTURES2. Après la déclaration de la variable, on 'Redimensionne' le tableau.   Public Structure DriveInfoDim DriveNumber() As ShortDim DriveType As StringEnd Structure  Function AddDrive(ByRef Number As ShorByRef DriveLabel As String) As ObjectDim Drives As DriveInfoRedim Drives.DriveNumber(25)Drives.DriveNumber(3)=12Drives.DriveType = "Fixed"End Function

Page 27: Vbisigk

OPÉRATIONS SUR LES TABLEAUX: AFFICHAGE

'afficher les éléments un par unfor i=0 to N    console.write(t(i))Next

Page 28: Vbisigk

RECHERCHE DANS UN TABLEAUPour 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 à 4T(0)="vert"T(1)="bleu"T(2)="rouge"T(3)="jaune"T(4)="blanc"Dim i  As Integer    'Variable de boucleDim AChercher As String= "rouge" 'String à chercherFor i=0 To N      If T(i)=AChercher then             Exit For      End ifNext i

Page 29: Vbisigk

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 IntegerDim T(N) As String   'création d'un tableau de String.Dim i As IntegerFor i= x To N-1    T(i)=T(i+1)Next iT(N-1)=""            'ne pas oublier de modifier le dernier élément 

Page 30: Vbisigk

OPÉRATIONS SUR LES TABLEAUX : INSÉRER UN ÉLEMENTpour 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 IntegerDim T(N) As String   'création d'un tableau de String.Dim i As IntegerFor i= N-1 To x+1 Step -1    T(i)=T(i-1)Next iT(x)="LFSI"            'ne pas oublier d'ajouter

Page 31: Vbisigk

OPÉRATIONS SUR LES TABLEAUX: RECHERCHE D'UN ÉLÉMENTPour 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 à 4T(0)="vert"T(1)="bleu"T(2)="rouge"T(3)="jaune"T(4)="blanc"Dim i  As Integer    'Variable de boucleDim AChercher As String= "rouge" 'String à chercherFor i=0 To N      If T(i)=AChercher then             Exit For      End ifNext i

Page 32: Vbisigk

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• ...........................................

Page 33: Vbisigk

COLLECTION DE TYPE ARRAY LISTC'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

Page 34: Vbisigk

ARRAYLIST : QUELQUES OPÉRATIONSL.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.

Page 35: Vbisigk

ARRAYLIST: QUELQUES OPÉRATIONInsert 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"

Page 36: Vbisigk

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.

Page 37: Vbisigk

LES FONCTIONS• Syntaxe

Function NOMF(ByVal Valeur1 As Integer, ByVal Valeur2 As Integer) As Integer Instructions ……Return Resultat End Function

Page 38: Vbisigk

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.

Page 39: Vbisigk

FONCTIONS/PROCEDURE ET STRUCTURESSub AfficheAdresse( ByVal Une Adresse As Adresse)...Imprimer l'adresseEnd sub

Page 40: Vbisigk

LA BOUCLE FOR EACH

Structure générale : For Each Item In Collection'boucleNext  ItemExempledim tab(10) as integerfor each v in tab s=s+vnext v  

Page 41: Vbisigk

PARTIE II : PROGRAMMATION ÉVÉNEMENTIELLE

Page 42: Vbisigk

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

Page 43: Vbisigk

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)

Page 44: Vbisigk

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

Page 45: Vbisigk

UN LABEL• Un Label est un contrôle "inerte", qui sert à

afficher un texte sur une Form.o Name : Nom de l’objeto Caption : évidemmento Alignment : qui règle l’alignement du texte

(gauche, centré, droite)o BorderStyle : qui désigne le type de bordure

Page 46: Vbisigk

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 ligneso 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.

Page 47: Vbisigk

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

Page 48: Vbisigk

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

Page 49: Vbisigk

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

Page 50: Vbisigk

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 nono Checked: Indique si la case est cochéeo CheckState: Indique l'état de la case à cocher

Page 51: Vbisigk

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

Page 52: Vbisigk

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 boutono Enabled Indique si le contrôle est activé ou pas o Visible Indique si le contrôle est visible ou paso Name Le nom du contrôle utilisé dans le codage o Size La taille du contrôle en pixels

Page 53: Vbisigk

LA COMBOBOX• Les ComboBox sont des menus déroulants.

Elles permettent de choisir une option parmi plusieurso Sorted: Indique comment sont triés les

éléments de la listeo Items: Permet d'ajouter les éléments dans la

liste déroulante

Page 54: Vbisigk

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)

Page 55: Vbisigk

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

Page 56: Vbisigk

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œudso 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

Page 57: Vbisigk

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.

Page 58: Vbisigk

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)

Page 59: Vbisigk

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 ?")