Visual studio

Preview:

Citation preview

Programmation évènementielle avec VB

ISIGK, 2011Adel ESSAFIadel.safi@imag.frhttp://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:oLes langages de programmation InterneloLes 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é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.

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

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 »

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:

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

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" 

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"

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

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 

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

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

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

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 

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

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

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

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.

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"

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

SyntaxeFunction 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'adresseEnd sub

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  

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

Form (propriétés)

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

Un textbox (zone de texte)

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.

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

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

Les checkbox

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

Les boutons radios

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

La Combobox

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

La Listbox

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)

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

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.

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

Recommended