The Wisdom of Oprah Winfrey: 29 Oprah Quotes about Business, Success and Life
Vbisigk
-
Upload
isig -
Category
Self Improvement
-
view
1.585 -
download
0
Transcript of Vbisigk
Programmation évènementielle avec VB
ISIGK, 2011Adel [email protected]://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 Internelo 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é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.
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 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).
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:
o Booleano 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écutionDéclaration:
Const NomConstante As Type = ValeurConst LONGUEURTABLEAU As Integer = 9
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
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"
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"
LA FONCTION WRITE• Write: affiche sans retour à la ligne• Writeline : affiche avec retour à la ligne• & : concaténer deux chaines
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
STRUCTURE CONDITIONNELLE• If - end if : structure classique• If – else – end if• If –elseif – else - end if
LA STRUCTURE SELECTSelect Case MaVariable Case 1 'Si MaVariable = 1 Case 2 'Si MaVariable = 2 Case Else 'Si MaVariable <> 1 et <> 2 End Select
STRUCTURE DO WHILEDo 'Instruction exécutée au moins une fois Loop While MaVariable = 10
STRUCTURE WHILEWhile 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 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 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
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
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• 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 STRUCTURESSub 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
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
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.
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 nono Checked: Indique si la case est cochéeo 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 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
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
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œ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
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 ?")