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

Visual studio

  • Upload
    isig

  • View
    1.596

  • Download
    7

Embed Size (px)

Citation preview

Page 1: Visual studio

Programmation évènementielle avec VB

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

Page 2: Visual studio

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: Visual studio

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: Visual studio

Langages de programmation

Tendances:oLes langages de programmation InterneloLes langages basé sur XML (markup)

Page 5: Visual studio

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ébutantsoun langage généraliste (All-purpose) ;oautoriser l'ajout de fonctionnalités pour leso interactif ;o fournir des messages d'erreur clairs et conviviaux ;oavoir 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: Visual studio

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: Visual studio

Framework Un framework (dans notre cas, le framework .NET de Microsoft) est une sorte d'immense bibliothèque informatique contenant des outils qui vont faciliter la vie du développeur

Evolution:oVersion 2.0 en 2005oVersion 3.5 en 2007oVersion 4 en 2010

Visual studio et frameworkoVS 2003 (Framework 1.1), VS 2005 (Framework 2.0), VS 2008 (Framework 3.5) et VS 2010 (Framework 4.0).

Page 8: Visual studio

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: Visual studio

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: Visual studio

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: Visual studio

Variables

Dim MaVariable As type Les types disponibles:

oBooleano Integer oDouble oString oDate Stocke une date et son heure sous la

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

Page 12: Visual studio

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: Visual studio

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 = ValeurConst LONGUEURTABLEAU As Integer = 9

Page 14: Visual studio

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

Page 15: Visual studio

Utilisation

La 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: Visual studio

Utilisation

Mot 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: Visual studio

La fonction write

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

Page 18: Visual studio

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

Page 19: Visual studio

Structure conditionnelle

If - end if : structure classique If – else – end if If –elseif – else - end if

Page 20: Visual studio

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

Page 21: Visual studio

Structure Do while

Do 'Instruction exécutée au moins une fois Loop While MaVariable = 10

Page 22: Visual studio

Structure while

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

Page 23: Visual studio

La boucle for

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

Page 24: Visual studio

Tableaux

1 dimensionoDim MonTableau(4) As Integer

2 dimensionsoDim MonTableau(3,4) As Integer

3 dimensionsoDim 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: Visual studio

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 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: Visual studio

Les tableaux dans les structures

2. 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: Visual studio

Opérations sur les tableaux: affichage 'afficher les éléments un par unfor i=0 to N    console.write(t(i))Next

Page 28: Visual studio

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: Visual studio

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: Visual studio

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: Visual studio

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: Visual studio

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: Visual studio

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: Visual studio

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: Visual studio

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: Visual studio

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: Visual studio

Les fonctions

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

Page 38: Visual studio

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: Visual studio

Fonctions/Procedure et Structures

Sub AfficheAdresse( ByVal Une Adresse As Adresse)...Imprimer l'adresseEnd sub

Page 40: Visual studio

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: Visual studio

Partie II : Programmation événementielle

Page 42: Visual studio

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: Visual studio

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: Visual studio

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: Visual studio

Form (propriétés)

Page 46: Visual studio

Un Label

• Un Label est un contrôle "inerte", qui sert à afficher un texte sur une Form.

• Name : Nom de l’objet• Caption : évidemment• Alignment : qui règle l’alignement du texte (gauche, centré, droite)

• BorderStyle : qui désigne le type de bordure

Page 47: Visual studio

Un textbox (zone de texte)

Page 48: Visual studio

Un textbox (zone de texte)

Ces zones (de la classe "TextBox" pour VB) peuvent servir à saisir une information (un texte).

toute information contenue dans une zone de texte est obligatoirement de type texte !

Propriétés :oText: C’est la propriété qui désigne son contenu.oMultiline : autorise ou non l’écriture sur plusieurs lignesoScrollbars : fait figurer dans la TextBox une barre de

défilement horizontale ou verticale (ou les deux)oPasswordChar : crypte le texte entré par le caractère

stipulé (généralement, on choisit le caractère *)oMaxLength  : limite le nombre de caractères qu’il est

possible de saisir dans la zone de texte.

Page 49: Visual studio

Le bouton

Le bouton est le composant le plus important puisque c'est grâce à lui que l'utilisateur pourra interagir avec le programme. Un bouton permet essentiellement de valider ou d'annuler une fonction. oText: Le texte du bouton oTextAlign: L'alignement du texte du boutonoEnabled Indique si le contrôle est activé ou pas oVisible Indique si le contrôle est visible ou pasoName Le nom du contrôle utilisé dans le codage oSize La taille du contrôle en pixels

Page 50: Visual studio

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=5ComboBox1.SelectedIndex=1 ‘pour sélectionner l’element à afficher

Page 51: Visual studio

Les checkbox

Page 52: Visual studio

Les checkbox

• Les " cases à cocher " (CheckBox): Elles sont carrées, et indépendantes les unes des autres, si l'utilisateur coche une case , cela n'a pas d'influence sur les autres cases du formulaire, qu'elles soient regroupées dans un cadre pour faire plus joli ou non

• Checked: Indique si la case est cochée• CheckState: Indique l'état de la case à cocher

Page 53: Visual studio

Les boutons radios

Page 54: Visual studio

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 55: Visual studio

La Combobox

Page 56: Visual studio

La Combobox

Les ComboBox sont des menus déroulants. Elles permettent de choisir une option parmi plusieursoSorted: Indique comment sont triés les éléments de la listeoItems: Permet d'ajouter les éléments dans la liste déroulante

Page 57: Visual studio

La Listbox

Page 58: Visual studio

La ListBox

• Le contrôle ListBox affiche une liste d'éléments (d'objets) dans laquelle l'utilisateur peut faire un ou plusieurs choix.

• Exemple de codes• Vider la ListBox• ListBox1.Items.Clear() • Ajouter un ou des éléments• ListBox1.Items.Add(" quelquechose") • Ajouter un tableau

oDim t() As String {"Franc", "Norgege", " Thaïlande" } oMe.ListBox1.Items.AddRange(t)

Page 59: Visual studio

procédures événementielles

• un événement est un message envoyé par un objet qui annonce que quelque chose s'est produit

• A chaque objet créé peuvent correspondre autant de procédures que d’événements possibles survenant sur cet objet

• Double click sur l’objet : la procédure gérant l’événement le plus courant pour l’objet considéré vient d’être créée

• CODE CREE ->Private Sub RadioButton1_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RadioButton1.CheckedChanged

End Sub

Page 60: Visual studio

procédures événementielles

• Private signifie que la procédure n’est utilisable que pour la Form considérée (et pas pour d’autres objets situés sur d’autres Form). On peut aussi créer des procédures Public

• End Sub marque la fin de la procédure en question (mais pas la fin de l’application).

Les évènements, dans le Framework .Net, utilisent tous ou presque, ce type de signature :•Sender représente l’instance qui a lancé cet évènement.•e, de type EventArgs ou héritant d’EventArgs, sert à transmettre des informations supplémentaires.

Page 61: Visual studio

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 62: Visual studio

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 63: Visual studio

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