0% ont trouvé ce document utile (0 vote)
15 vues261 pages

Programmation Sous Visual Basic

Ce document présente un guide sur la programmation en Visual Basic, incluant le démarrage de l'environnement de développement, la création de projets et d'interfaces utilisateur. Il aborde également les concepts fondamentaux tels que les contrôles, les événements, les types de données et les erreurs courantes. Enfin, il fournit des exemples pratiques pour aider les utilisateurs à développer leurs premières applications.

Transféré par

driss
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
15 vues261 pages

Programmation Sous Visual Basic

Ce document présente un guide sur la programmation en Visual Basic, incluant le démarrage de l'environnement de développement, la création de projets et d'interfaces utilisateur. Il aborde également les concepts fondamentaux tels que les contrôles, les événements, les types de données et les erreurs courantes. Enfin, il fournit des exemples pratiques pour aider les utilisateurs à développer leurs premières applications.

Transféré par

driss
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Programmation sous

Visual Basic
[Link]
DÉPARTEMENT DE STATISTIQUE ET
DE L'INFORMATIQUE APPLIQUÉES
Plan
2

 Démarrage de Visual Basic


 L'environnement de développement
 Fondements de la programmation en Visual Basic
 Procédures et Fonctions
 Les décisions et répétitions
 Tableaux et collections
 Contrôles et objets additionnels
 Dessiner avec l‟objet Graphics
 Programmation Orientée Objet

[Link] 25/12/2008
Démarrage de Visual Basic

Projets existant

Projets récents

Créer un nouveau
projet

[Link] 25/12/2008
Créer un nouveau projet
4

2: Modèle du projet
(Application Windows)

1: Type du projet 3: Nom du projet


(Visual Basic) (???)

[Link] 25/12/2008
5

PREMIÈRE APPLICATION

[Link] 25/12/2008
Créer un projet dans Visual Basic
6

La première étape pour créer un programme Visual Basic consiste


à ouvrir Visual Studio et à créer un projet. Vous procédez ainsi
pour créer n'importe quel programme Visual Basic.
 Pour créer un projet pour votre programme
1. Dans le menu Démarrer de Windows, sélectionnez Microsoft Visual
Basic 2005 Express.
L'écran « Bienvenue dans Visual Basic Express » s'affiche. Il s'agit de
l'interface pour Visual Basic 2005 Express, également connue sous le nom
d'environnement de développement intégré, ou IDE (Integrated
Development Environment).
2. Dans le menu Fichier, cliquez sur Nouveau projet.
La boîte de dialogue Nouveau projet s'affiche.
3. Sélectionnez Application Windows, puis cliquez sur OK.
Un nouveau formulaire s'affiche dans l'IDE, et les fichiers nécessaires à
votre projet sont ajoutés dans la fenêtre de l'Explorateur de solutions.
S'il s'agit du premier projet Application Windows que vous créez, il se
nommera « WindowsApplication1 ».

[Link] 25/12/2008
L'interface de travail
7

Explorateur

Barre d'outils

Fenêtre des propriété

[Link] Boite à outils Conception 25/12/2008


Créer une interface utilisateur
8

 La Boîte à outils se trouve du côté gauche de Visual Studio et se compose de plusieurs


onglets tels que Données, Composants et Tous les Windows Forms. Chaque onglet
comprend un jeu d'éléments qui représentent des contrôles ou des composants que vous
pouvez ajouter à votre application. Par exemple, l'onglet Tous les Windows Forms
possède des entrées nommées TextBox, Button et CheckBox représentant des
contrôles que vous pouvez ajouter à votre application en les faisant glisser jusqu'au
formulaire.
 Exemple
 Cliquez l'onglet Tous les Windows Forms de la Boîte à outils, sélectionnez le
contrôle Panel, puis faites glisser un panneau jusqu'au coin supérieur gauche du
formulaire
 Dans le même onglet, faites glisser un contrôle Button et placez-le au-dessus du
contrôle Panel.
 Dans le même onglet, faites glisser un contrôle TextBox et placez-le au-dessus du
contrôle Panel.
 Enfin, dans l'onglet Tous les Windows Forms, sélectionnez un contrôle
WebBrowser et placez-le sous le contrôle Panel.

[Link] 25/12/2008
9

Interface
utilisateur

Bouton TextBox Panel

WebBrowser

[Link] 25/12/2008
Personnaliser l'apparence et le comportement
10
Dans la leçon précédente, vous avez créé une interface utilisateur en ajoutant des contrôles à votre
application. Toutefois, à ce stade, ni son fonctionnement ni son aspect ne semblent être ceux d'une
application finie. Dans cette leçon, vous définirez des propriétés pour gérer l'aspect de vos
contrôles, à l'aide de la fenêtre Propriétés.
Pour définir les propriétés de vos contrôles
1. Dans le Concepteur de formulaires, sélectionnez le contrôle Panel.
La fenêtre Propriétés placée dans le coin inférieur droit de l'IDE affiche toutes les
propriétés destinées au contrôle Panel nommé Panel1.
2. Dans la fenêtre Propriétés, sélectionnez la propriété Dock, puis cliquez sur la flèche de
droite. Une petite fenêtre de sélection de propriétés contenant plusieurs zones s'affiche.
3. Cliquez sur la zone supérieure dans la fenêtre de sélection de propriétés pour attribuer à la
propriété Dock la valeur Top. Le contrôle Panel se développe pour occuper le haut du
formulaire.
4. Dans le Concepteur de formulaires, sélectionnez le contrôle WebBrowser. Dans la
fenêtre Propriétés, affectez à sa propriété Dock la valeur Fill en sélectionnant la propriété
Dock, en cliquant sur la flèche de droite et en sélectionnant la zone centrale dans la fenêtre
de sélection de propriétés.
5. Dans le Concepteur de formulaires, sélectionnez le contrôle Button.
6. Dans la fenêtre Propriétés, sélectionnez la propriété Text du contrôle Button. Dans la
colonne droite, supprimez Button1 et remplacez-le par Go!.
7. Redimensionnez ou déplacez éventuellement des contrôles et redimensionnez le formulaire
selon vos goûts.
[Link] 25/12/2008
Ajouter du code Visual Basic
11

Pour ajouter un code et des fonctionnalités à


votre programme
1. Dans le Concepteur de formulaires, double-
cliquez sur le contrôle Button.
Une nouvelle fenêtre appelée l'éditeur de code
s'affiche. Elle permet d'ajouter tout le code destiné
à votre programme.
2. Dans l'éditeur de code, saisissez les éléments
suivants.
[Link]([Link])

[Link] 25/12/2008
Ajouter du code Visual Basic
12

[Link] 25/12/2008
Exécuter et tester votre programme
13

Pour exécuter votre programme


1. Connectez votre ordinateur à Internet.
2. Dans le menu Déboguer de l'IDE Visual Basic, cliquez sur
Démarrer le débogage.
3. Dans la zone de texte, tapez [Link] et
cliquez sur le bouton Go!.
Le contrôle WebBrowser de votre programme navigue
jusqu'à la page d'accueil du site Web de Microsoft. Depuis
cette page, vous pouvez poursuivre la navigation par le biais
de tous les liens connexes. Pour visiter une autre page Web,
tapez l'adresse dans la zone de texte, puis cliquez sur le
bouton Go!.
4. Pour fermer le programme, cliquez sur Arrêter le
débogage dans le menu Déboguer.

[Link] 25/12/2008
14

Exécution de
votre premier
programme

[Link] 25/12/2008
Fondements de la programmation en Visual Basic
15

 Les Contrôles de base en Visual Basic

 Les Evénements en Visual Basic

 Les nombres

 Les chaînes de caractère

 Les Entrées et Sorties

[Link] 25/12/2008
Les Contrôles de base en Visual Basic
16

 Le contrôle “TextBox”

 Le contrôle “Button”

 Le contrôle “Label”

[Link] 25/12/2008
Boîte à outils
17

[Link] 25/12/2008
Trois Controls (en mode concépteur)
18

TextBox

Pour sélectionner un contrôle, cliquez sur celle-ci. Les Tags de


dimensionnement apparaissent quand un contrôle est
sélectionné.

[Link] 25/12/2008
Le contrôle “TextBox”

 Utiliser pour les Entrés/Sorties


 Lorsqu‟il est utilisé comme Sortie, la valeur
True doit être affecté à la propriété ReadOnly

Boutton des
Tâches

Tags de
dimensionnement
25/12/2008 [Link]
19
Fenêtre des Properties
Affichage par catégorie Affichage par ordre alphabétique

Appuyez sur F4
pour afficher la
fenêtre Propriétés
pour le contrôle
sélectionné.

[Link] 20 25/12/2008
Certaines propriétés souvent utilisées
21

 Text
 Name
 Enable
 Visible
 [Link]
 [Link]
 ForeColor
 BackColor
 ReadOnly

[Link] 25/12/2008
Définition des propriétés
22

 Sélectionner le contrôle à modifier

 Appuyer sur F4 pour afficher la fenêtre Propriétés


pour le contrôle sélectionné.

 Cliquer sur le nom de la propriété à modifier.

 Entrer ou sélectionner la nouvelle valeur de la


propriété dans la colonne de droite.

[Link] 25/12/2008
Le contrôle “Button”

 La libellé apparaissant au dessus du bouton


doit indiquer l‟effet du click sur ce bouton.
 La propriété Text détermine cette libellé.

25/12/2008 [Link]
23
Ajouter une touche d'accès rapide
24

[Link] 25/12/2008
La propriété “Name”
25

 Permet au programmeur de se réfère à un contrôle


dans le code.

 Le nom doit commencer par une lettre, avoir une


longueur inférieur à 215 caractères, et peut inclure
des chiffres, des lettres ou le caractère souligné „_‟.

 Utiliser les 3 ou 4 caractères du nom pour


caractériser le type de contrôle utilisé.

[Link] 25/12/2008
Le contrôle “Label” (étiquette)
26

 Utiliser pour identifier le contenu d‟un TextBox.


 La propriété “Text” spécifie la légende à afficher.
 Par défaut, l'étiquette est redimensionné
automatiquement pour faire tenir la légende sur
une seule ligne.
 Lorsque la propriété « redimensionnement
automatique » est définie sur False, l'étiquette peut
être redimensionnées manuellement. Utilisé
principalement pour obtenir une étiquette sur
plusieurs lignes.

[Link] 25/12/2008
Prefixes des noms de contrôles

Contrôle Prefixe Exemple


Button btn btnCompute
Label lbl lblAddresse
TextBox txt txtAddresse

25/12/2008 [Link]
27
Les Evénements en Visual Basic
28

 Un événement est une action, tels que le click d„un


utilisateur sur un bouton.

 Habituellement, rien ne se passe dans un program


Visual Basic jusqu'à ce que l'utilisateur fait quelque
chose et génère un événement.

 Ce qui arrive est déterminé par votre code.

[Link] 25/12/2008
Focus
29

 Lorsque vous cliquez sur une zone de texte, un


curseur apparaît dans la zone de texte, et vous
pouvez taper dans la zone de texte.

 On dit que cette zone de texte a reçu le focus.

 Si vous cliquez sur une autre zone de texte, la


première zone de texte perd le focus et la deuxième
zone de texte reçoit le focus.

[Link] 25/12/2008
Fenêtre du code
30

Page tab

Nom de Nom de la
la Classe Methode

[Link] 25/12/2008
Exemple de formulaire
31

txtFirst

txtSecond

btnRed

Double Click sur txtFirst

[Link] 25/12/2008
Code à saisir
32

Public Class frmDemo


Private Sub txtFirst_TextChanged(...)
Handles [Link]
[Link] = [Link]
End Sub
End Class

[Link] 25/12/2008
IntelliSense
33

Un pops up apparaît automatiquement pour aider le programmeur. .

[Link] 25/12/2008
Entête de la procédure évenementielle
34

Private Sub btnRed_Click(…) Handles [Link]

Le Nom peut Identifie


changer. l‟événement

Private Sub Button_Press(…) Handles [Link]

[Link] 25/12/2008
Nombres
35

 Operations arithmétiques
 Variables
 Incrémentation de la valeur d‟une variable
 Fonctions prédéfinis: (exemples)
 [Link]

 Int

 [Link]

[Link] 25/12/2008
Nombres (suite)
36

 Le type de données Integer et Double

 Déclarations multiple

 Parenthèses

 Trois types d‟Erreurs

[Link] 25/12/2008
Operations arithmetiques
37

Cinq opérations arithmétiques en Visual Basic


 + addition
 - soustraction
 * multiplication
 / division
 ^ exponentiation
 Expressions numériques
 2+3

 3 * (4 + 5)

 2^3

[Link] 25/12/2008
Variable numérique
38

 Une variable numérique est un nom auquel


on assigne un nombre.

 Exemples:

 speed
 distance
 interestRate
 balance

[Link] 25/12/2008
Variables
39

 Declaration:
Dim speed As Double

Nom de la Type de
Variable données

• Affectation:
speed = 50

[Link] 25/12/2008
Le type de données “Integer”
40

 L‟instruction
Dim varName As Integer
déclares une variable numérique à laquelle on peut
assigner toutes les valeurs comprises
approximativement entre -2 milliard et 2 milliard .

[Link] 25/12/2008
Parenthèses
41

 Les parenthèses devraient être largement utilisés


dans les expressions numériques.
 En l'absence de parenthèses, les opérations sont
effectuées dans l'ordre suivant: :
 ^,

 * /

 + -

[Link] 25/12/2008
Trois types d‟Erreurs
42

 Erreurs de Syntax

 Erreurs d‟exécution (Run-time)

 Erreurs Logiques

[Link] 25/12/2008
Quelques exemples d'erreurs de syntaxe
43

 Mal orthographier
[Link](3)
 Omissions
[Link](2 + )
 Ponctuation Incorrect
Dim m; n As Integer

[Link] 25/12/2008
Une erreur d'exécution par exemple
44

 Erreur de débordement

Dim numVar As Integer = 1000000


numVar = numVar * numVar

[Link] 25/12/2008
Exemple d‟une erreur de logique
45

Dim average As Double


Dim m As Double = 5
Dim n As Double = 10
average = m + n / 2

La valeur de la moyenne sera de 10. alors qu‟elle


devrait être de 7,5.

[Link] 25/12/2008
Concepts clés
46

 Comprendre ce qu'est un contrôle

 Comprendre ce que les propriétés sont


 Ce sont au cœur de conception orientée objet

 Comprendre les événements

 Se familiariser avec les types de données numériques

 Se familiariser avec les trois types d'erreurs

[Link] 25/12/2008
Les Chaines de Caractères
47

 Variables et chaines de caractères


 Utilisation des TextBox pour les Entrés/Sorties
 Concaténation
 Propriétés et Méthodes des chaines de caractères:
Length ToUpper
Trim ToLower
IndexOf Substring
 Les chaines de caractères vides
 La valeur initiale des chaines de caractères
 Option Strict

[Link] 25/12/2008
Chaîne littérale
48

Une chaîne littérale est une séquence de


caractères entourés par des guillemets.
Exemples :
"Bonjour"
"123-45-6789"
"#ab cde?"

[Link] 25/12/2008
Variable chaîne de caractère
49

Une variable chaîne de caractère est un nom auquel


on peut affecter une chaîne de caractère.

Exemples:
Pays
CIN
mot
Prenom

[Link] 25/12/2008
Variable chaîne de caractère
50

 Déclaration:
Dim Prenom As String

Nom de la Type de
variable données

• Affectation:
Prenom = "Jamal"

[Link] 25/12/2008
Variable chaîne de caractère
51

Vous pouvez déclarer et assigner


une valeur en même temps.

Dim Prenom As String = "Jamal"

[Link] 25/12/2008
Utilisation des TextBox pour les Entrés/Sorties
52

 Le contenu d'un TextBox est toujours une chaîne


de caractères

 Exemple d‟entré
strVar = [Link]

 Exemple de sortie
[Link] = strVar

[Link] 25/12/2008
Conversion de données
53

 Parce que le contenu d'une zone de texte est toujours


une chaîne, parfois vous devez convertir l'entrée ou
de sortie.
dblVar = CDbl([Link])

Convertit une chaîne en réelle

[Link] = CStr(numVar)

Convertit un nombre en une chaîne

[Link] 25/12/2008
Concaténation
54

Combinaison de deux chaînes de caractère


pour en créer une autre
quote1 = " Le contenu d'une zone "
quote2 = " de texte est toujours "
quote = quote1 & quote2
[Link] = quote & "une chaîne."

Displays
Le contenu d'une zone de texte est toujours
une chaîne.

[Link] 25/12/2008
Propriétés et Méthodes des chaînes
55

"Visual".Length est 6.
"Visual".ToUpper est VISUAL.
"123 Hike".Length est 8.
"123 Hike".ToLower est 123 hike.
"a" & " bcd ".Trim & "efg" est abcdefg.

[Link] 25/12/2008
Positions dans les chaînes
56

Les positions des caractères dans les chaînes sont


numéroté 0, 1, 2, ….
 Considérant la chaîne “Visual Basic”.
 Position 0: V
 Position 1: i
 Position 7: B
 Substring “al” commence à la position 4

[Link] 25/12/2008
La méthode Substring
57

Soit str une chaîne.


[Link](m, n) est une sous chaîne de
longueur n, débutant à la position m dans str.

“Visual Basic”.Substring(2, 3) est “sua”


“Visual Basic”.Substring(0, 1) est “V”

[Link] 25/12/2008
La méthode IndexOf
58

Soit str1 et str2 des chaînes.


[Link](str2)
Retourne la position de la première occurrence de
str2 dans str1 (-1 si str2 n‟est pas une sous-chaîne
de str1.)
"Visual Basic".IndexOf("is") est 1.
"Visual Basic".IndexOf("si") est 9.
"Visual Basic".IndexOf("ab") est -1.

[Link] 25/12/2008
Les chaînes vide
59

 La chaîne "", qui ne contient pas de caractères, est


appelé chaîne vide ou chaîne de longueur
nulle.
 Le contenu d'une zone de texte peut être effacé,
soit avec l‟instruction
[Link]()
 ou l‟instruction
[Link] = ""

[Link] 25/12/2008
La valeur initiale d‟une chaîne
60

 Par default la valeur initiale est Nothing


 Une variable chaîne peut être initialiser comme suit :

Dim aujourd_hui As String = "Lundi"

[Link] 25/12/2008
Option Strict
61

 Visual Basic permet aux variables numériques à


affecter les chaînes, et vice-versa, une mauvaise
pratique de programmation.
 Pour désactiver cette fonctionnalité, mettez la
déclaration suivante au tout début de votre code
Option Strict On

[Link] 25/12/2008
Option Strict On pour tous les Programmes
62

 Sélectionnez Options dans le menu Outils


 Dans volet gauche, développez Projets et
Solutions
 Sélectionnez Valeurs par défaut VB
 Mettez la valeur On pour Option Strict

[Link] 25/12/2008
Avec Option Strict On
63

Dim dblVar As Double, intVar As Integer


Dim strVar As String

Non Valide: Remplacer avec:


intVar = dblVar intVar = CInt(dblVar)
dblVar = strVar dblVar = CDbl(strVar)
strVar = intVar strVar = CStr(intVar)

[Link] 25/12/2008
Commentaires
64

Private Sub btnCompute_Click (...)


Handles [Link]
'Calculer le solde d’un compte
Dim rate As Double 'Taux d’interêt annuel
Dim curBalance As Double 'Solde courant

Objectifs
 D'autres personnes peuvent facilement comprendre le
programme.
 Vous pouvez le comprendre quand vous le lirez plus tard.
 Les programmes long sont plus faciles à lire parce ses
différents parties sont documentées.
[Link] 25/12/2008
Coloration automatique
65

Commentaires– vert
Chaînes – rouge
Mots clés– bleu

Note: Les mots clés sont des mots reservé par le langage
comme Sub, Handles, Private, With, et End et qui
ont une signification spéciale en Visual Basic. Ils ne
peuvent pas être utilisés comme noms de variables.
[Link] 25/12/2008
Le caractère de continuation de ligne
66

 Une longue ligne de code peut être poursuivie sur une


autre ligne à l'aide d'un trait de soulignement (_)
précédé par un espace

msg = "Une longue ligne de code peut être " & _


"poursuivie sur une autre ligne."

[Link] 25/12/2008
Entrés & Sorties
67

 Lecture des données à partir des fichiers


 Obtenir des données à partir d'une boîte de dialogue
d'entrée
 Utilisation de la boîte de dialogue pour l‟affichage
des messages
 Utilisation d'une zone de texte masqué pour
contrôler la nature de l‟information entrée

[Link] 25/12/2008
Lecture des données à partir des fichiers texte
68

 Les données peuvent être stockées dans des fichiers


 L‟accès au fichiers se fait au moyen de l‟objet
StreamReader.
 Nous supposons que les fichiers sont des fichiers
texte (qui est, ont l'extension. TXT) et disposent
d'une information élémentaire par ligne.

[Link] 25/12/2008
Exemple de fichier: [Link]
69

Mourad Jallal Nom

7.35 Salaire horaire

35 Nombre d'heures travaillées


Jamal Snoussi
6.75
33

[Link] 25/12/2008
Etapes pour l‟utilisation du StreamReader
70

Déclaration et initialisation d‟une variable


StreamReader:
Dim readerVar As [Link] = _
[Link](filespec)
ou

Dim readerVar As [Link]


readerVar = [Link](filespec)

[Link] 25/12/2008
Etapes pour l‟utilisation du StreamReader
71

Lire les éléments de données dans l'ordre, un à la fois, à


partir du fichier avec la méthode ReadLine.
strVar = [Link]
Après la lecture des données souhaitées fermer la
connexion avec le fichier
[Link]()

[Link] 25/12/2008
Exemple d‟utilisation StreamReader
72

Dim name As String


Dim wage, hours As Double
Dim sr As [Link] = _
[Link]("[Link]")
name = [Link]
wage = CDbl([Link])
hours = CDbl([Link])
[Link](name & ": " & wage * hours)
OUTPUT: Mourad Jallal : 257.25

[Link] 25/12/2008
Lecture des données à partir des fichiers Excel
73

 Les données peuvent être stockées dans des


fichiers Excel.
 L‟accès au fichiers se fait au moyen de l‟objet
Excel.

[Link] 25/12/2008
Etapes pour l‟utilisation des fichiers Excel
74

 Ajout de la référence à Microsoft Excel


 Dans le menu Projet sélectionner l‟option «Ajouter une référence»

 Dans l‟onglet «COM» sélectionner «Microsoft Excel xx.x Object


Library»
xx.x fait référence à la
version d‟Excel installée
sur votre ordinateur.
 Cliquer sur «OK»

[Link] 25/12/2008
Etapes pour l‟utilisation des fichiers Excel
75

 Importation des espaces nom Excel (à


écrire en début de module)
Imports [Link]

 Déclaration des variables


 Dim appExcel As [Link]
'Application Excel
 Dim classeur As [Link]
'Classeur Excel
 Dim feuille As [Link]
'Feuille Excel

[Link] 25/12/2008
Etapes pour l‟utilisation des fichiers Excel
76

 Ouvrir un classeur Excel existant


appExcel = CreateObject("[Link]")
'Ouverture de l'application
classeur = [Link](filespec)
'Ouverture d'un fichier Excel
feuille = [Link](1)
'feuille correspond à la première feuille du fichier
 Créer un nouveau classeur Excel
appExcel = CreateObject("[Link]")
'Ouverture de l'application
classeur = appExcel .[Link]
„Création d'un nouveau classeur Excel
feuille = [Link](1)
'feuille correspond à la première feuille du fichier

[Link] 25/12/2008
Etapes pour l‟utilisation des fichiers Excel
77

 Lecture / Ecriture des données


x = [Link](3, 1).Value
La propriété Cells(n°ligne,n°colonne) permet de sélectionner une
seule cellule.
Cette instruction transfère dans la variable «x» l‟information se
trouvant dans la troisième ligne et la première colonne de la feuille
de calcul désigné par la variable nommée «feuille».

[Link](3, 1).Value = x
Cette instruction transfère dans la troisième ligne et la première
colonne de la feuille de calcul désigné par la variable nommée
«feuille» le contenu de la variable x.

[Link] 25/12/2008
Etapes pour l‟utilisation des fichiers Excel
78

 Enregistrement et fermeture du
classeur Excel
[Link] (filespec)
'Enregistrement d‟un nouveau classeur Excel
[Link]()
'Enregistrement du classeur Excel
[Link]()
'Fermeture du classeur Excel
[Link]()
'Fermeture de l'application Excel

[Link] 25/12/2008
Exemple de fichier: [Link]
79

[Link] 25/12/2008
Exemple d‟utilisation
80
Imports [Link]


'Déclaration des variables
Dim appExcel As [Link] 'Application Excel
Dim classeur As [Link] 'Classeur Excel
Dim feuille As [Link] „Feuille Excel
Dim name As String
Dim wage, hours As Double

appExcel = CreateObject("[Link]") 'Ouverture de l'application


classeur = [Link]("[Link]") 'Ouverture d'un fichier Excel
feuille = [Link](1) „On pointe sur la première feuille du fichier

name = [Link](2, 1).Value


wage = [Link](2, 2).Value
hours = [Link](2, 3).Value
[Link](name & ": " & wage * hours)

[Link]() 'Fermeture du classeur Excel


[Link]() 'Fermeture de l'application Excel

OUTPUT: Mourad Jallal : 257.25


[Link] 25/12/2008
Obtenir des données à partir d'une boîte de dialogue d'entrée et
utilisation de la boîte de dialogue pour l‟affichage des messages
81

 Moyen de communiquer avec le monde extérieur


 Une entrée permet au programme de demander une donnée à
l‟utilisateur (InputBox)

 Une sortie fournit un résultat à


l‟utilisateur sur l‟écran,
par exemple (MessageBox)

[Link] 25/12/2008
Obtenir des données à partir d'une boîte de
dialogue d'entrée
82

stringVar = InputBox(invite, titre)


fileName = InputBox("Entrer le nom " _
& "du fichier contenant " & _
"l’information", "Nom du fichier")

Titre
Invite

[Link] 25/12/2008
Utilisation de la boîte de dialogue pour
l‟affichage des messages
83

[Link](invite,titre,boutons)
[Link]("Seules les valeurs positives sont acceptées", _
"Information", _
[Link])

Titre

Invite

[Link] 25/12/2008
Le contrôle MaskedTextBox
84

Similaire au TextBox ordinaire, mais


permettant en plus d'utiliser un masque
pour la saisie de caractères. Le masque
indique quels caractères interdire ou
permettre.

[Link] 25/12/2008
La boîte de dialogue des masques de saisie
85

[Link] 25/12/2008
Masque
86

 Pour le masque personnalisé on utilise:


0 Chiffre requis (lettres refusés)
9 Chiffre ou espace optionnel. (lettres refusés)
# Chiffre ou espace optionnel. (+) (-) sont permis.
L Lettre requise. (chiffres refusés)
? Lettre requise optionnelle. (chiffres refusés)
& Caractère requis.(Chiffres et lettres permises)
C Caractère, requis optionnel.(Chiffres et lettres permises %*& permis)
A Alphanumérique requis opt.(Chiffres et lettres permises %*& refusés)
. Point Decimal; celui de la culture.
, Séparateur de millier; celui de la culture.
: Séparateur de temps; celui de la culture.
/ Séparateur de date; celui de la culture.
$ Symbole monétaire; celui de la culture.
< Convertir les caractères qui suivent en minuscule.
> Convertir les caractères qui suivent en majuscule.
| Stop la conversion minuscule ou majuscule.
\ Escape. Le caractère qui suit devient un littéral.“\\” affichera '\'.
Autres caractères Littéraux. Affichés tels quels

 Exemple: "00/00/0000" permet de saisir une date.


[Link] 25/12/2008
87

PROCÉDURES ET FONCTIONS

[Link] 25/12/2008
Procédures & Fonctions (Introduction)
88
 Une procédure est un bloc de code autonome qui peut être exécuté à partir
d'autres blocs de code. En général, les procédures contiennent chacune le
code nécessaire pour accomplir une tâche. Par exemple, vous pouvez
disposer d'une procédure appelée PlaySound qui contient le code
nécessaire à la lecture d'un fichier .wav. Même si vous pouvez écrire le code
pour lire un son chaque fois que votre programme doit en émettre un, il est
plus rationnel de créer une procédure unique que vous pouvez appeler
depuis n'importe quel emplacement dans votre programme.

 Une procédure s'exécute en l'appelant dans un code. Par exemple, pour


exécuter la procédure PlaySound, vous devez simplement ajouter une
ligne de code à votre programme avec le nom de votre procédure, comme
indiqué ci-dessous.
PlaySound

[Link] 25/12/2008
Procédures & Fonctions (Introduction)
89
 Il existe deux types de sous-routines : les fonctions et les procédures (parfois
appelées sub). Une fonction retourne une valeur à la procédure qui l'a appelée,
tandis qu'une procédure se contente d'exécuter un code. Les procédures sont
appelées lorsqu'une ligne de code qui contient leurs noms est ajoutée au
programme, comme dans l'exemple suivant.
DisplayResults

 Les fonctions sont différentes, car non seulement elles exécutent le code, mais elles
retournent également une valeur. Par exemple, imaginez une fonction appelée
GetDayOfWeek qui retourne un Integer qui indique le jour de la semaine. Vous
appelez cette fonction en déclarant d'abord une variable pour stocker la valeur
retournée, puis en assignant la valeur retournée à la variable pour l'utiliser
ultérieurement, comme illustré ci-dessous.
Dim Today As Integer
Today = GetDayOfWeek
Dans cet exemple, la valeur retournée par la fonction est copiée dans la variable
nommée Today, puis enregistrée à des fins d'utilisation ultérieure.

[Link] 25/12/2008
Écriture de procédures
90

 Procédure
Sub MyFirstSub()

End Sub
 Le mot clé Sub explique au programme que cette sous-routine est une procédure et ne
retournera aucune valeur. Le nom de la procédure (MyFirstSub) vient ensuite. Les
parenthèses vides indiquent l'absence de paramètres dans cette procédure. Enfin, le mot clé
End Sub indique la fin de la procédure . Tout le code qui sera exécuté par cette sous-routine
se place entre ces deux lignes.
 Fonction
Function MyFirstFunction() As Integer

Return (resultat)
End Function
 Les mots clés As Integer indiquent que cette fonction retourne une valeur de type Integer .
Pour retourner une valeur à partir d'une fonction, utilisez le mot clé Return, comme illustré
dans l'exemple suivant.

[Link] 25/12/2008
Paramètres des Fonctions et des Procédures
91

 Les paramètres sont très similaires aux variables. Ils disposent d'un type et d'un
nom, et ils stockent des informations, comme les variables. Ils s'utilisent comme des
variables dans une procédure. Les deux principales différences entre les paramètres
et les variables sont les suivantes :
 Les paramètres sont déclarés dans la déclaration de procédure, et non individuellement sur des
lignes de code distinctes.
 Les paramètres ne peuvent être utilisés que dans la procédure dans laquelle ils sont déclarés.
 Les paramètres sont déclarés dans la déclaration de procédure, entre les
parenthèses qui suivent le nom de procédure. Il servent à transférer des
informations entre la procédure appelante et la procédure appelée.
 Le mot clé As est utilisé pour déclarer le type, et chaque paramètre est
généralement précédé par le mot clé ByVal ou ByRef.
 Un exemple de sous-routine avec ses paramètres est proposé ci-dessous.
Sub PlaySound(ByVal SoundFile As String, ByVal Volume As Integer)
[Link](SoundFile, Volume)
End Sub

[Link] 25/12/2008
Paramètres des fonctions et des sous-routines
92

Procédure Procédure
appelante appelée

paramètre en « Donnée » noté (ByVal)


transmis au moment de l’appel du sous-algorithme

paramètre en « Résultat » noté (ByRef)


transmis à la sortie du sous-algorithme

paramètre en « Donnée et Résultat » noté (ByRef)

[Link] 25/12/2008
Procédures Sub, Partie I
93

 Procédures Sub

 Variables et Expressions comme Arguments

 Appel à d‟autres Procédures Sub

[Link] 25/12/2008
La modularité
94

 Visual Basic dispose de deux moyens pour moduler


un programme:

 Les procédures (subs)

 Les fonctions (functions)

[Link] 25/12/2008
Sub Procedures
95

 Effectue une ou plusieurs actions


 Syntaxe

Sub NomDeLaProcedure()
instructions
End Sub

 Appel
NomDeLaProcedure()

[Link] 25/12/2008
Passage de valeurs
96

 Vous pouvez envoyer des valeurs à une procédure au


moment de son appel.
Sum(2, 3)

Sub Sum(ByVal num1 As Double, ByVal num2 As Double)


[Link]("La somme de " & num1 & " et " _
& num2 & " est " & (num1 + num2) & ".")
End Sub

 Dans la procédure Sum Sub, 2 sera stocké dans num1 and


3 dans num2

[Link] 25/12/2008
Arguments et Paramètres
97

Sum(2, 3)
arguments

paramètres
Sub Sum(ByVal num1 As Double, ByVal num2 As Double)

Ajouter automatiquement:
transfert des paramètres par valeur par opposition à
« ByRef » qui spécifie un transfert des paramètres
par référence.

[Link] 25/12/2008
Quelques instructions d‟appels
98

Sum(2, 3)
Sum(4, 6)
Sum(7, 8)
Sorties:
La somme de 2 et 3 est 5.
La somme de 4 et 6 est 10
La somme de 7 et 8 est 15.

[Link] 25/12/2008
Passage des chaînes et des nombres
99

Demo("MA", 34)

Sub Demo(ByVal state As String, ByVal pop As Double)


[Link] = state & " à une population de" & pop _
& " million."
End Sub

 Note: L‟instruction Demo(34, "MA") ne sera pas valide. Les


types des arguments doivent être dans le même ordre que
les types des paramètres.

[Link] 25/12/2008
Variables et Expressions comme Arguments
100

Dim s As String = "MA"


Dim p As Double = 17
Demo(s, 2 * p)

Sub Demo(ByVal state As String, ByVal pop As Double)


[Link] = state & " à une population de" & pop _
& " million."
End Sub

 Note: Les noms de variables formant les arguments n‟ont


pas forcement les mêmes noms que les noms paramètres.
Par exemple, s contre state..

[Link] 25/12/2008
Appel
101

Une procédure Sub peut être appelée à partir d‟une autre


procédure SUB.

Private Sub btnAdd_Click(...) Handles [Link]


Sum(2, 3)
End Sub

Sub Sum(ByVal num1 As Double, ByVal num2 As Double)


DisplayPurpose()
[Link]("La somme de " & num1 & " et " _
& num2 & " est " & (num1 + num2) & "."
End Sub

[Link] 25/12/2008
Procedures Sub, Partie II
102

 Passage de paramètres par Valeur


 Passage de paramètres par Référence
 Variables locales
 Variables membres
 Débogage

[Link] 25/12/2008
ByVal et ByRef
103

 Les paramètres dans l‟entête d‟une procédure Sub


sont précédés par ByVal ou ByRef
 ByVal signifie Par Valeur
 ByRef signifie Par Référence

[Link] 25/12/2008
Passage par valeur
104

 Quant un argument variable est passé à un


paramètre ByVal, seulement la valeur de l‟argument
est passé.
 Après l‟exécution de la procédure, la variable garde
sa valeur d‟origine.

[Link] 25/12/2008
Exemple
105


Dim n As Double = 4
Triple(n)
[Link]([Link])

Sub Triple(ByVal num As Double)


num = 3 * num
End Sub
Sortie: 4
[Link] 25/12/2008
Passing by Reference
106

 Quant un argument variable est passé à un


paramètre ByRef, le paramètre occupe alors le même
emplacement mémoire de l‟argument.

 Après l‟exécution de la procédure, la variable a la


valeur du paramètre.

[Link] 25/12/2008
Exemple
107


Dim n As Double = 4
Triple(n)
[Link]([Link])

Sub Triple(ByRef num As Double)


num = 3 * num
End Sub
Sortie: 12
[Link] 25/12/2008
Variable Locale
108

 Une variable déclaré à l‟intérieur d‟une procédure


Sub à l‟aide de l‟instruction Dim
 L‟espace est réservé en mémoire pour cette variable
jusqu‟à End Sub – ensuite la variable cesse d‟exister.

[Link] 25/12/2008
Exemple
109


Dim num As Integer = 4
SetFive()
[Link]([Link])

Sub SetFive()
Dim num As Integer = 5
End Sub

Sortie: 4

[Link] 25/12/2008
Variables membre
110

 Une variable membre est déclarée au niveau module,


à l'intérieur d'une classe, d'une structure ou d'un
module, mais pas dans une procédure interne à cette
classe, structure ou module.
 Visible à toutes les procédures à l‟interieur d‟un
module.
 L‟instruction Dim pour les variables membres est
placé:
 A l‟extérieur de toutes les procédures
 Au début du module.

[Link] 25/12/2008
Exemple
111

Dim num As Integer = 4

Private Sub btnOne_Click(...) Handles btnOne_Click


SetFive()
[Link]([Link])
End Sub

Sub SetFive()
num = 5
End Sub

Sortie: 5

[Link] 25/12/2008
Portée
112

 La portée d'une variable est la portion du programme


qui peut se référer à elle.

 Les variables membres ont une portée globale au niveau du


module et sont disponibles à toutes les procédures sous-
jacentes.

 Les variables déclarées dans une procédure ont une portée


locale et ne sont disponibles que pour la procédure dans
laquelle elles sont déclarées.

[Link] 25/12/2008
Programmation Orientée Objet POO
113

 une encapsulation de données et de code qui opère


sur les données
 Les objets ont des propriétés, répondent par des
méthodes, et déclenchent des événements.

[Link] 25/12/2008
Concepts clés

 Comprendre la différence entre ByVal et ByRef


 Comprendre la différence de champ d'application
en ce qui a trait à l'endroit où les variables sont
déclarées.
 Comprendre que les Procédures et les Fonctions
sont les outils qui vont nous servir pour réaliser
l'encapsulation
 Comprendre que nous utilisons les contrôles
comme des objets
25/12/2008 [Link]
114
Décisions
115

 Opérateurs Relationnels

 Opérateurs Logiques

 Le bloc If

 L‟expression conditionnelle IIf

[Link] 25/12/2008
Opérateurs Relationnels
116

< inférieur à
<= inférieur ou égale à
> Supérieur à
>= supérieur ou égale à
= égale à
<> Différent de

[Link] 25/12/2008
Notes sur le Opérateurs Relationnels
117

 Les Opérateurs Relationnels sont binaires – ils


requièrent des opérandes des deux coté de
l'opérateur.
 Le résultat de l'expression relationnelle sera toujours
l'une de ces deux valeurs : True ou False
 Les expression sont évaluées de gauche à droite.

[Link] 25/12/2008
Opérateurs Logiques
118

 And
 Or
 Not

[Link] 25/12/2008
Opérateurs Logiques
119

 Utilisés avec les expressions booléennes


 Not – opérateur unaire dont le résultat est True si
l'expression à sa droite est False et vice versa
 And – Opérateur binaire dont le résultat est True si
et seulement si ces deux opérandes sont True
 Or – Opérateur binaire dont le résultat est True si au
moins un de ces opérandes est True

[Link] 25/12/2008
Exemple
120

Pour tester si n appartient à l'intervalle 2, 5 :

(n[2, 5])

(2 <= n ) And ( n <= 5 )

[Link] 25/12/2008
Erreur de syntaxe
121

L'expression suivante n'est pas valide et ne pourra pas


tester si n appartient à l'intervalle 2, 5 :
(2 < n < 5 )

1ère opération
Résultat de type
True ou False

Opération imposible
entre un booléen et un entier

[Link] 25/12/2008
Ordre des Opérations
122

L‟ordre d‟évaluation des expressions Booléenne est:


1. Opérateurs Arithmétiques
2. Opérateurs Relationnels
3. Opérateurs Logiques

[Link] 25/12/2008
L‟ordre des opération arithmétiques
123

1. Parenthèses
2. Exponentiation
3. Division et multiplication
4. Addition et soustraction

[Link] 25/12/2008
Ordre des opérations relationnels
124

Elles ont tous les mêmes priorités

[Link] 25/12/2008
Ordre des opérations logiques
125

1. Not

2. And

3. Or

[Link] 25/12/2008
Condition
126

 Une condition est une expression composé


d‟opérateurs relationnels et / ou logiques
 Les résultat d‟une condition est un booléen – qui est,
True ou False

[Link] 25/12/2008
Erreur courante dans les expression booléenne
127

 Une erreur courante est de remplacer la condition


Not ( 2 < 3 ) par la condition ( 2 > 3 )
 Le remplacement correct est ( 2 >= 3 )
parce que >= est l‟opposé de <,
de même <= est l‟opposé de >

[Link] 25/12/2008
Variable Booléenne
128

Une variable déclarée avec une instruction de la forme


Dim var As Boolean
est dite de type booléen et ne peut avoir que l‟une des deux
valeurs possibles True et False.
Exemple:
Dim boolVar As Boolean
boolVar = 2 < 6
[Link]([Link])
Affiche True dans la boite de dialogue.

[Link] 25/12/2008
Blocs If
129

 Blocs If

 Clause ElseIf

[Link] 25/12/2008
Blocs If
130

Le programme exécutera l'une ou l'autre des actions


selon que le résultat de la condition est True ou False.
If condition Then
action1 Sera executer si la
condition est true
Else
action2 Sera executer si la
condition est false
End If

[Link] 25/12/2008
La structure conditionnelle simple
131

Teste la condition et passe dans la


...
branche vraie (then), sinon
éventuellement dans la branche fausse
(else)
Condition

Vrai Faux

Si condition Alors
Instructions Instructions cas
Cas vrai ... faux ... ...Instructions_cas_vrai...
[Sinon
...Instructions_cas_faux...]
... Fin Si

131
[Link] Algorithmique et Programmation 25 décembre 200825/12/2008
Exemple 1: Form
132

txtPremierNum

txtSecondNum

txtResult

[Link] 25/12/2008
Example 1: Code
133

Private Sub btnFindLarger_Click(...) _


Handles [Link]
Dim num1, num2, largerNum As Double
num1 = CDbl([Link])
num2 = CDbl([Link])
If num1 > num2 Then
largerNum = num1
Else
largerNum = num2
End If
[Link] = "Le plus grand nombre est " &
largerNum
End Sub

[Link] 25/12/2008
Example 1: Output
134

[Link] 25/12/2008
La clause ElseIf
135
If condition1 Then
action1 …
ElseIf condition2 Then
action2

non

non

non
ElseIf condition3 Then condition1 condition2 condition3
action3
Else oui oui oui
action4
action1 action2 action3 action4
End If

[Link] 25/12/2008
Simplified Nested If Statement
136

If cond1 Then If cond1 And cond2 Then


If cond2 Then action
action End If
End If
End If

If Moins
imbriqué confus

[Link] 25/12/2008
L‟expression conditionnelle IIf
137

IIF évalue une expression et retourne l' un ou l' autre des deux arguments passés en paramètres.
Synopsis:
IIf(expr, truepart, falsepart)
Si expr est vraie, retourner truepart. Sinon retourner falsepart.

Cet exemple utilise la fonction IIf pour évaluer le paramètre TestMe et renvoie soit le mot
"Grand" si le montant est supérieur à 1000 soit le mot "Petit" s'il est inférieur à 1000.

CheckIt = IIf(TestMe > 1000, "Grand", "Petit")

 La notation équivalente avec la syntaxe classique serait:


if TestMe > 1000 then
CheckIt = "Grand"
else
CheckIt = "Petit"
End If
[Link] 25/12/2008
Concepts clés
138

 Comprendre la différence entre les opérateurs


relationnels et les opérateurs logiques
 En fin de compte, toutes les décisions sont
booléens
 Le processus de décision est généralement
accomplit à l'aide d'un BLOC IF

[Link] 25/12/2008
Répétition
139

 Boucles Do

 Traitement des listes de données avec les boucles Do

Instruction
Instruction
 Boucles For...Next précédente
précédente

Instruction(s)
Pour i allant de x à y à répéter

 Boucles imbriquées
Instruction(s)
Condition
à répéter

Instruction
Instruction suivante
suivante

[Link] 25/12/2008
Les boucles Do
140

 La boucle est l'une des plus importantes structures


en matière de programmation.

 Elles sont utilisées pour répéter une séquence


d‟instructions un certain nombre de fois.

 La boucle Do répète en boucle une séquence


d‟instructions, tant que, ou jusqu'à ce qu‟une
certaine condition deviens vraie.

[Link] 25/12/2008
Do Loop Syntax
141
La condition est testée, si elle
est vraie, les instructions à
l’intérieur de la boucle sont
Do While condition exécutés, ensuite on revient à
la condition pour la retester.
instruction(s) Si elle est fausse, les
instructions après la boucle
Loop sont exécutées.

Ces instructions sont à


l‟intérieur de la boucle et
s‟exécuterons tant que la
condition au dessus est
vraie

[Link] 25/12/2008
Exemple 1
142

Private Sub btnDisplay_Click(...) _


Handles [Link]
'Affiche les nombre de 1 à 7
Dim num As Integer = 1
Do While num <= 7
[Link](num)
num = num + 1 'Ajoute 1 à la valeur de num
Loop
End Sub

[Link] 25/12/2008
Post Test Loop
143

Do
Instruction(s)
Loop Until condition

La boucle est exécuté une fois, ensuite la


condition est testée:
• Si elle est fausse, la boucle est exécuté
de nouveau.
• Si elle est vraie, les instruction ci-après la
déclaration de boucle sont exécutées.
[Link] 25/12/2008
Exemple 2: Form
144

txtTaille

txtQuand

[Link] 25/12/2008
Exemple 2: Code
145

Private Sub btnCalculate_Click(...) Handles


[Link]
Dim Taille As Double, nbAnnees As Integer
Taille = CDbl([Link])
Do While Taille < 30
Taille = 1.06 * Taille
nbAnnees = nbAnnees + 1
Loop
[Link] = "Dans " & nbAnnees & _
" votre arbre aura une hauteur de 30 mètres."
End Sub

[Link] 25/12/2008
Exemple 2: Output
146

[Link] 25/12/2008
Comments
147

 Soyez attentif à éviter les boucles infinis - les boucles


qui ne finissent jamais.
 quel type d'erreur est ceci ?

 Visual Basic permet l‟utilisation de l'un ou l'autre des


deux mot-clé While ou Until soit à l‟entrer ou à la
sortie de la boucle Do … Loop.
Do while x>1000 Do until x<=1000
… …
Loop Loop
Do Do
… …
Loop while x>1000 Loop until x<=1000

[Link] 25/12/2008
Règles d‟écriture de l‟instruction Do...While et
Do...Until
148
Règles
 Test de la condition. Vous pouvez tester condition une seule fois, au début ou à la fin de la boucle. Vous
pouvez utiliser While ou Until pour spécifier condition, mais pas les deux.

 Nombre d'itérations. Si vous testez condition au début de la boucle (dans l'instruction Do), la boucle peut
ne jamais s'exécuter, même une fois. Si vous la testez à la fin de la boucle (dans l'instruction Loop), la boucle
s'exécute toujours, au moins une fois.

 Imbrication de boucles. Vous pouvez imbriquer des boucles Do en plaçant une boucle à l'intérieur d'une
autre. Vous pouvez également imbriquer divers types de structures de contrôle l'un dans l'autre.

 Transfert en dehors de la boucle. Exit passe immédiatement le contrôle à l'instruction qui suit
l'instruction Loop. Vous pouvez vouloir quitter une boucle si vous décelez une condition qui la rend inutile ou
impossible pour poursuivre l'itération, telle qu'une valeur erronée ou une demande d'arrêt. Vous pouvez placer
un nombre quelconque d'instructions Exit Do n'importe où dans la boucle Do. Exit Do est généralement
utilisé après l'évaluation d'une condition, par exemple dans une structure If...Then...Else.

Boucles infinies
 Vous pouvez utiliser Exit Do pour tester une condition qui engendrerait une boucle infinie, c'est-à-dire une
boucle qui pourrait s'exécuter de nombreuses fois, voire indéfiniment. Si vous détectez une telle condition,
vous pouvez utiliser Exit Do pour quitter la boucle. Sinon, la boucle continue à s'exécuter.

[Link] 25/12/2008
Traitement des listes de données avec les boucles Do
149

 La méthode Peek

 Compteur et Accumulateurs

 Indicateurs

[Link] 25/12/2008
Peek Method
150

 Pour lire les données à partir d‟un fichier on utilise


souvent la boucle Do

 Comme on ne connait pas à priori le nombre de


données qu‟il y a dans le fichier, on procède à la
lecture du début du fichier jusqu‟à sa fin.

 Pour déterminer si nous avons atteint la fin du


fichier, nous employons la méthode Peek.

[Link] 25/12/2008
Peek Exemple
151

 Supposer qu‟on a ouvert un fichier par un


StreamReader appelé Sr.

 [Link] est la valeur ASCIdu premier caractère de


la ligne en cours. Si la fin du fichier a été atteinte, la
valeur du [Link] est équivalente à -1

[Link] 25/12/2008
Exemple 3: Affiche le contenu d‟un fichier
152

Dim sr As [Link] = _
[Link]("[Link]")
[Link]()
Do While [Link] <> -1
nom = [Link]
NumPhone = [Link]
[Link](nom & " " _
& NumPhone )
Loop
[Link]()

[Link] 25/12/2008
Exemple 4: Partial Code
153

Do While (nom <> [Link]) _


And ([Link] <> -1)
nom = [Link]
NumPhone = [Link]
Loop
Tant que le nom recherché
n'a pas été trouvé ET fin de
fichiern'a pas été atteinte,
la boucle continuera

[Link] 25/12/2008
Counters and Accumulators
154

 Un compteur est une variable numérique qui


s‟incrémente (ou se décrémente) chaque fois d‟une
unité.

 Un accumulateur est une variable numérique qui


s‟incrément chaque fois d‟une valeur différents. Elle
sert par exemple pour le calcul de totaux.

[Link] 25/12/2008
File [Link]
155

1
1
5
10 Compter le nombre
de pièces ainsi que
10 leur somme
25

[Link] 25/12/2008
Example 3: Partial Code
156

Dim nbPieces As Integer = 0


nbPieces est un
Dim somme As Integer = 0 compteur qui
s‟incrémente de 1 à
chaque passage de
Dim Piece As String la boucle

Do While [Link] <> -1


Piece = [Link]
nbPieces = nbPieces + 1
somme = somme + CDbl(Piece)
Loop Somme est un
accumulateur. Il est
utilisé pour totalier
la valeurs des pièces
de monnaie.

[Link] 25/12/2008
Indicateurs
157

 Un indicateur est une variable qui indique si une


certaine situation s'est produite

 Le type de données le plus utilisé pour les indicateurs


est le Boolean.

[Link] 25/12/2008
Exemple 5: Code partiel
158

 Le fichier [Link] contient les noms d‟un groupe de personnes, un


nom par la ligne. Compter les noms et déterminer s'ils sont dans l'ordre
alphabétique.

Dim nom1 As String = ""


Dim nom2 As String
Dim wordCounter As Integer = 0
Dim IndicateurOrdre As Boolean = True
Do While ([Link] <> -1)
nom2 = [Link]
wordCounter += 1
If nom1 > nom2 Then
IndicateurOrdre = False
End If
nom1 = nom2
Loop
[Link] 25/12/2008
Les boucles For…Next
159

 Utilisé quand nous savons combien de fois nous


voulons exécuter la boucle

 Une boucle contrôlé par un compteur


(ou variable de contrôle)

[Link] 25/12/2008
Syntaxe de l‟instruction For … Next
160

For counter [ As datatype ] = start To end [ Step step ]


[ statements ]
[ Exit For ]
[ statements ]
Next [ counter ]
counter : Requis dans l'instruction For. Variable numérique. Variable de
contrôle de la boucle.
datatype : Obligatoire si counter n'est pas déjà déclaré. Type de données de
counter.
start : Obligatoire. Expression numérique. Valeur initiale de counter.
end : Obligatoire. Expression numérique. Valeur finale de counter.
step : Facultatif. Expression numérique. Valeur d'incrémentation de
counter à chaque itération de la boucle.
statements : Facultatif. Une ou plusieurs instructions entre For et Next à
exécuter le nombre de fois spécifié.
Exit For : Facultatif. Transfert le contrôle hors de la boucle For.
Next : Obligatoire. Termine la définition de la boucle For.

[Link] 25/12/2008
Exemple
161

Dim i As Integer
For i = 1 To 5
[Link](i & " " & i ^ 2)
Next

La variable de contrôle « i » de la boucle est:


 Initialiser à 1
 Tester par rapport à la valeur d‟arrêt, 5
 Incrémenter de 1 à chaque instruction Next
 1 et 5 peuvent être exprimer à l‟aide de variables!

[Link] 25/12/2008
Exemple: compte à rebour
162

Dim j As Integer
For j = 10 To 1 Step -1
[Link](j)
Next
[Link]("Décollage")

[Link] 25/12/2008
Les paires For et Next
163

 Les instructions For et Next doivent être associées


par paires.

 Si l‟un des deux est manquant, le contrôleur de


syntaxe automatique le signalera avec un souligné
onduleux et un message d‟erreur: “ 'For' doit se
terminer par un 'Next' correspondant.”

[Link] 25/12/2008
L‟option Step
164

 Considérant la boucle suivante


For i As Integer = m To n Step s.
 La boucle sera exécuté pour des valeurs de i variant
de m à n par pas de s (m, m+s, m+2s, …, n)
 La boucle sera exécuté exactement une seule fois si
m est égale à n et ce quelque soit la valeur de s.
 La boucle ne sera pas exécuté si m est plus grande
que n et s est positive, ou si m est inférieur à n et s
est négative.

[Link] 25/12/2008
Boucles imbriquées
165

• Les instruction à l‟intérieur d‟une boucle peuvent


contenir d‟autres boucles.
For i Do
Do For i
For j For i
For i For k For j
For l

Next
For i Loop

Next
Next Next
Next Next
Loop Next Next Next
Valide Valide Non Valide Non Valide
[Link] 25/12/2008
Structures de contrôle imbriquées
166

 Chevauchement de structures de contrôle


 Vous ne devez pas faire en sorte que des structures de contrôle se chevauchent. Cela
signifie que toute structure imbriquée doit être entièrement contenue dans la structure la
plus profonde suivante. Il faut respecter la règle FILO (First In Last Out). Par exemple, la
disposition suivante est non valide car la boucle For se termine avant la fin du bloc If
interne.

For i as integer = 1 to 100

If i=100 then

Next i

End If

 Le compilateur Visual Basic détecte ces chevauchements de structures de contrôle et


signale une erreur de compilation.
[Link] 25/12/2008
Concepts clés
167

 Pouvoir utiliser les deux techniques de répétition.

 Comprendre comment mettre en œuvre ces


techniques.

 Connaître ce que sont les compteurs, accumulateurs,


et indicateurs.

[Link] 25/12/2008
Tableaux
168

 Création et manipulation des tableaux

 Utilisation des tableaux

 Quelques types additionnels de tableaux

 Tries et recherches

 Tableaux à deux dimensions

[Link] 25/12/2008
Création et manipulation des tableaux
169

 Déclaration d‟une variable tableau

 La procédure Evénement “Load”

 La méthode GetUpperBound

 L‟instruction ReDim

 Utilisation d‟un tableau comme une table de


fréquences
[Link] 25/12/2008
Variables Simple et Tableaux
170

 Une variable (ou variable simple) est un nom


auquel Visual Basic peut assigner une valeur simple.

 Un Tableau est une collection de variables simples


du même type auquel Visual Basic peut efficacement
assigner une liste de valeurs.

[Link] 25/12/2008
Exemple
171

 Supposer que vous voulez évaluer les notes d'examen pour 30 étudiants
et d‟afficher les noms des étudiants dont les notes sont au-dessus de
moyenne.
L‟utilisation de variables simples passe par la déclaration de ces
dernières une à une.

Private Sub btnDisplay_Click(...) _


Handles [Link]
Dim etudiant1 As String, note1 As Double
Dim etudiant2 As String, note2 As Double
Dim etudiant3 As String, note3 As Double

Dim etudiant30 As String, note30 As Double

 Problème: code très long et surtout impossibilité d‟utilisé les indices

[Link] 25/12/2008
Utilisation des tableaux
172
Limite supérieure de l’indice du tableau

Dim etudiant(29) As String


Dim note(29) As Double
Nom du tableau Type de données
 Role de la declaration
 Préparation de l‟emplacement
 Pas de valeur affectées avant leur initialisation
 Utilisation (accès)
 Notes(0), Notes (2), etudiant(15), etc.
Note(29)
…... …...
Note(0) Note(2) Note(i)
[Link] 25/12/2008
Utilisation des tableaux (Déclaration et initialisation)
173

 Comme avec d'autres types de valeurs, vous pouvez


déclarer et assigner des valeurs à un tableau sur une
seule ligne, de la manière suivante.

Dim players() As Integer = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11}

 Dans ce cas, des accolades indiquent une liste de


valeurs. Les valeurs sont affectées aux éléments dans
l'ordre spécifié. Remarquez que la taille du tableau
n'est pas spécifiée. Elle est déterminée par le nombre
des éléments que vous énumérez.
[Link] 25/12/2008
Tableau : Initialisation de valeurs avec itération
174

 Dim Noms(10) As String


 Dim i As Integer

 For i = 1 To 10
 Noms(i) = InputBox(" Entrer le nom d'etudiant " & i)
 Next i
 .....

[Link] 25/12/2008
Exemple: Trouver le nombre max dans un tableau de
nombres entiers
175
 ' Déclaration
Dim Nombres (10) As Integer
Dim i, valMax As Integer

' Initialisation
For i = 1 To 10
Nombres(i) = InputBox (" Valeur pour Nombre " & i)
Next

valMax = Nombres(1)

For i = 2 To 10
If Nombres(i) > valMax Then
valMax = Nombres(i)
End If
Next

[Link] (" Nombre Max = " & valMax)


[Link] 25/12/2008
Mettre des valeurs dans un Tableau
176

etudiant(0) = "Mourad Jallal "


index

Ce qui signifie que la chaine de caractères


« Mourad Jallal » est stockée à la première case
d’un tableau appelée « etudiant » … parce que
tous les tableaux commencent par l’indice 0.

[Link] 25/12/2008
Terminologie
177

Dim NomTableau(n) As TypeDonnee

 0 est la "limite inférieure" du tableau


 n est la "limite supérieure" du tableau– le dernier
indice disponible dans ce tableau
 Le nombre d'éléments est n + 1 et correspond à
la taille du tableau

[Link] 25/12/2008
Les Méthodes de la Classe Array
178
 Soit un tableau Mois()
Méthode Exemple

Clear [Link](Mois,0,2)
„Efface 2 éléments du tableau Mois à partir de l‟élément 0
Reverse [Link](Mois, 1, 3)
„inverse les 3 éléments à partir de l‟élément 1
Copy [Link](Mois,1,Mois2,1,20)
„copie 20 éléments de Mois vers Mois2 à partir du 2eme élément.
Sort [Link](Mois)
„Trie le tableau Mois
IndexOf Dim myIndex As Integer = [Link](Mois, 5)
„Recherche la valeur 5 dans le tableau Mois et retourne l‟indice de la case
où elle se trouve; -1 si l'élément n'est pas trouvé.
GetUpperBound Indice = [Link](0)
„Retourne le plus grand indice disponible pour la dimension indiquée
d'un tableau
[Link] 25/12/2008
Exemple
179

Dim semaine() As String = {"Lundi","Mardi","Mercredi", _


"Jeudi","Vendredi","Samedi", _
"Dimanche"}
[Link] = CStr([Link](0))

Affichage: 6

[Link] 25/12/2008
Instruction ReDim
180

 permet de redimensionner un tableau (modifier le


nombre d'éléments d'un tableau existant.

ReDim arrayName(m)

 où arrayName est le nom d‟un tableau existant, et m


une expression entière représentant la nouvelle
dimension du tableau.
 Attention , on ne peut pas modifier le nombre de
dimension, ni le type des données.
[Link] 25/12/2008
Le mot-clé Preserve
181

ReDim arrayName(m) réinitialise tout les


éléments du tableau. Ceci peut être empêché avec la
mot-clé Preserve.
ReDim Preserve arrayName(m)
redimensionne le tableau en préservant autant de
valeurs [Link] possible

[Link] 25/12/2008
L‟erreur IndexOutofRange
182
Le code suivant référence un élément de tableau qui n'existe pas.
Ceci causera une erreur (exception).

Dim semaine() As String = {"Lundi","Mardi","Mercredi", _


"Jeudi","Vendredi","Samedi", _
"Dimanche"}
[Link] = semaine(7)

[Link] 25/12/2008
Tableau à deux dimensions
183

 Exemple
 Réservation de l‟emplacement d‟un tableau numérique de
200 valeurs
 Par 10 lignes et 20 colonnes

 Déclaration
 Dim Notes (9, 19) As Integer

[Link] 25/12/2008
Tableau à deux dimensions (2)
184

 Chaque élément y est repéré par deux indices


 le premier indice est compris entre 0 et 9 (indice de ligne)
 le second indice est compris entre 0 et 19 (indice de colonne)

[Link] 25/12/2008
Tableau à deux dimensions (3)
185

 Indexation

... ... ... ... ...

Notes(0,0) Notes(i, j)
Notes(1, 2)
Notes(9, 19)

[Link] 25/12/2008
Confusion
186

 Une confusion se produit parfois parce que le


premier index du tableau est 0, que le deuxième c‟est
1 , etc.

 L‟index d‟un élément est toujours n-1

 Cependant vous n'avez pas besoin de stocker des


données dans l'index 0!

[Link] 25/12/2008
Concepts clés

 Comprendre comment dimensionner --et créer de


ce fait-- un Tableau.

 Comprendre comment charger les données dans


un Tableau.

 Comprendre la différence entre les Tableaux à 1,


2, ou n dimensions et comment chacun peut être
utilisé.
25/12/2008 [Link]
187
Collections
188

 Collections contre Tableaux

 Création et manipulation des Collections

 Utilisation des Collections

[Link] 25/12/2008
Collection contre Tableau
189

 Une alternative aux tableaux est l’usage de


Collection.
 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
que les éléments que l'on a ajouté.

[Link] 25/12/2008
Création d‟une collection
190

 L'objet collection utilise un couple Clé-Valeur, pour


chaque élément.
 C'est pratique car cela permet de retrouver une
valeur à partir de la clé.
 Pour utiliser une collection d'objets, vous devez
premièrement créer l'objet maCollection.
Dim maCollection As New Collection
 Dès que cet objet est créé, vous pouvez ajouter (avec
Add), enlever ou manipuler des éléments.

[Link] 25/12/2008
Liste d‟objets: ArrayList
191

 La ArrayList est une collection particulière: On peut


y mettre des objets : chaînes, nombre…
 rien n‟empêche que le premier élément soit un
entier, le second une chaîne…
 Il n'y a pas de clé.
 Attention le premier élément est ici l'élément 0
(l'index va de 0 à count-1) ; c'est du .NET!!

[Link] 25/12/2008
Méthode Add
192

 Soit la collection Col, au départ elle est vide.


Dim Col As New ArrayList()
 J'ajoute des élément (ou items) à cette collection.
[Link] ("Toto")
 Voici la collection:
 La collection a maintenant 1 élément. Toto

[Link]("Lulu")
[Link]("Titi")
 La collection a 3 éléments maintenant. Toto
Lulu
Titi
[Link] 25/12/2008
Méthode Remove
193

 [Link](1) enlève le second élément (numéro 1)


Toto
Titi

 La collection n'a plus que 2 éléments maintenant.

 On voit que le nombre d'élément n'est pas connu à


l'avance, il varie en fonction des éléments ajoutés (ou
retirés)

[Link] 25/12/2008
Propriété Item
194

 Un élément est repéré par son indice.


 [Link](1) contient "Titi" (le second Item de la
collection)
 C‟est une propriété en Lecture et Ecriture:
 [Link]([Link](1)) affiche le contenu du
second Item de la Collection
 [Link](1) = "Tata" modifie le contenue du second Item de
la Collection
Toto
Tata

[Link] 25/12/2008
Parcourir une collection
195

Avec l’index de l’item For i=0 to [Link]-1


A=[Link](i)
Next i
Avec For Each Dim o As Objet
For Each o in L
A=o
Next

Avec l'objet IEnumerator Dim C As IEnumerator= [Link]()


While [Link]())
A=[Link]
End While

[Link] 25/12/2008
D‟autres Propriétés et Méthodes
196

[Link] 'Retourne le nombre d‟éléments de la liste


[Link](élément) 'On enlève élément de la liste
[Link](0) 'On enlève l‟élément 0 de la liste
[Link]() 'Trie la collection
[Link]() 'Efface tous les éléments
[Link] (élément) 'Retourne True si la liste contient élément.
[Link]( position, élément) 'permet d‟insérer élément à un index spécifié.
[Link](élément) 'Recherche la première occurrence de
élément dans une collection
[Link](n,élément) 'Recherche de élément dans une collection à
partir de la position n.

Exemple: [Link](“TaTa") retourne la valeur 1

[Link] 25/12/2008
Concepts clés

 Comprendre la différence entre une Collection et un


Tableau.

 Comprendre comment créer une Collection

 Comprendre comment gérer (Ajouter, Supprimer,


Rechercher , Trier, etc.) les données dans une Collection.

 Comprendre comment parcourir les éléments d'une


Collection

25/12/2008 [Link]
197
Contrôles et objets additionnels
198

 ListBox,

 ComboBox

 Les Boîtes de dialogue

 Quatre Contrôles élémentaires

 MDI

[Link] 25/12/2008
Le contrôle ListBox
199

 Le contrôle ListBox affiche une liste d'éléments (d'objets)


dans laquelle l'utilisateur peut faire un ou plusieurs choix.

 La liste contient "tarte", "poisson", "viande", "légumes",


"sauces".
 Ici l'élément "poisson" est sélectionné, il est en bleu.
 La listBox contient une collection d'"Item":
 Items est une collection contenant tous les éléments (les
objets) chargés dans la liste.
 [Link] est la collection du contrôle ListBox1
[Link] 25/12/2008
Propriétés et Méthodes Utiles
200
[Link] Indique le nombre d'éléments contenus dans la liste
[Link] Indique le numéro de l‟élément sélectionné. Si aucun
élément n'est sélectionné, la valeur de la propriété
SelectedIndex est égale à -1.
[Link](n) Renvoie la valeur de l'élément n
[Link] La propriété SelectionMode indique le nombre
d'éléments pouvant être sélectionnés en même temps.
[Link]() Vider la ListBox
[Link]("poisson") Ajouter l'élément "poisson"
[Link](4,"lulu") Insérer "lulu" en 4éme position
[Link]("TATA") Supprime l'élément "TATA"
[Link](5) Supprime l'élément en 5éme position
Lorsque plusieurs éléments sont sélectionnés, la valeur de la propriété SelectedIndex
correspond au rang du premier élément sélectionné dans la liste. Les collections SelectedItems
et SelectedIndices contiennent les éléments et les numéros d'index sélectionnées.

[Link] 25/12/2008
L'élément actuellement sélectionné dans la ListBox
201

L'élément actuellement sélectionné peut être obtenu


par:
[Link]([Link])
ou
[Link]

[Link] 25/12/2008
Le contrôle ComboBox
202

 Il s'agit d'une classe-fille à la fois de la classe


Listbox et de la classe Textbox. Elle en hérite donc
l'essentiel des propriétés. En gros, on peut considérer
qu'une ComboBox, c'est une liste modifiable et/ou
déroulante
 L'utilisateur a l'option de choisir
parmi une liste ou saisir quelque chose
 Essentiellement les mêmes propriétés,
événements, et méthodes que la ListBox

[Link] 25/12/2008
The OpenFileDialog Control
203

 Implements the standard File Open dialog box


 Found in the Dialogs section of the Toolbox
 Note: When you place the control on the form, it
will not be visible. The icon and default name will
appear in the pane below the Main area.

[Link] 25/12/2008
An Open File Dialog Box
204

[Link] 25/12/2008
The Filter Property
205

 Determines what appears in the “Files of type:”


combo box, and what types of files will be
displayed. The setting has the general form
text for combo box|*.ext
Example: Text Files (*.TXT)|*.TXT

[Link] 25/12/2008
Using the OpenFileDialog control
206

 To display the control:

[Link]()
 After the Open button has been pressed, the file
name selected and its complete filespec will be
contained in the property:
[Link]

[Link] 25/12/2008
An Example
207

 Select a text file and display its contents.

 Note: The Filter property of OpenFileDialog1 is set


to
Text Files (*.TXT)|*.TXT

[Link] 25/12/2008
Example Code
208

Private Sub btnSelect_Click(...) Handles _


[Link]
Dim textFile As String
[Link]()
textFile = [Link]
Dim sr As [Link] = _
[Link](textFile)
Do While [Link] <> -1
[Link]([Link])
Loop
[Link]()
End Sub
[Link] 25/12/2008
Four Elementary Controls
209

 The Group Box Control


 The Check Box Control
 The Radio Button Control
 The Timer Control

[Link] 25/12/2008
The Group Box Control
210

 Group boxes are passive objects used to group other


objects together
 When you drag a group box, the attached controls
follow as a unit
 To attach a control to a group box, create the group
box, then drag the control you want to attach into the
group box

[Link] 25/12/2008
Group Box Example
211

Text property of the group box

Three
attached controls:
Button1
Button2
Button3

[Link] 25/12/2008
The Check Box Control
212

 Consists of a small square and a caption


 Presents the user with a Yes/No choice
 During run time, clicking on the check box toggles
the appearance of a check mark.
 Checked property is True when the check box is
checked and False when it is not
 CheckedChanged event is triggered when the user
clicks on the check box

[Link] 25/12/2008
Example 2: Form
213

[Link] 25/12/2008
Example 2: Code
214

Private Sub Tally(...) Handles [Link], _


[Link], [Link], _
[Link]
Dim sum As Double = 0
If [Link] Then
sum += 12.51
End If
If [Link] Then
sum += 9.68
End If
If [Link] Then
sum += 1.5
End If
If [Link] Then
sum += 25.25
End If
[Link] = FormatCurrency(sum)
End Sub

[Link] 25/12/2008
Example 2: Output
215

[Link] 25/12/2008
The Radio Button Control
216

 Consists of a small circle with a caption (that is set by


the Text property)
 Normally several radio buttons are attached to a
group box
 Gives the user a single choice from several options
 Clicking on one radio button removes the selection
from another

[Link] 25/12/2008
Radio Button Properties
217

 To determine if the button is on or off

[Link]
has value True if button in on.

 To turn a radio button on

[Link] = True

[Link] 25/12/2008
Example 3: Form
218

radCandidate1

radCandidate2

txtVote

[Link] 25/12/2008
Example 3: Code
219

Private Sub btnVote_Click(...) Handles [Link]


If [Link] Then
[Link] = "You voted for Kennedy."
ElseIf [Link] Then
[Link] = "You voted for Nixon."
Else
[Link] = "You voted for neither."
End If
End Sub

[Link] 25/12/2008
Example 3: Output
220

[Link] 25/12/2008
The Timer Control
221

 Invisible during run time


 Triggers an event after a specified period of time
 The Interval property specifies the time period –
measured in milliseconds
 To begin timing, set the Enabled property to True
 To stop timing, set the Enabled property to False
 The event triggered each time [Link]
elapses is called [Link].

[Link] 25/12/2008
Multiple Forms
222

 Visual Basic programs can contain more than one


form
 To add the new form, select Add Windows Form
from the Project menu, to invoke the Add New
Items dialog box.

[Link] 25/12/2008
Add New Items dialog box
223

[Link] 25/12/2008
Add New Items dialog box
224

• Select Windows Form from the Installed


Templates pane.
• Optionally type in a name.
• Press the Add button.

[Link] 25/12/2008
Solution Explorer
225

• Both forms will be accessible through


Solution Explorer.

[Link] 25/12/2008
Variables and Multiple Forms
226

 Variables declared in the declarations section of a


form with Public, instead of Dim, will be
available to all forms in the program.
 When a Public variable is used in another form, it
is referred to by an expression such as
[Link]

[Link] 25/12/2008
Concepts clés
227

 There are numerous controls that can be placed on


your GUI. Each has specific purposes. You should
understand how to choose the best control for your
needs.

[Link] 25/12/2008
228

DESSINER

[Link] 25/12/2008
L'objet Graphics
229

 Un Graphics est une simple référence à


 une Image ( un BitMap ou un MetaFile).
 la surface de dessin d'un contrôle.

 Le Graphics n'est pas le dessin lui même, il "pointe"


simplement sur le dessin.

 Il faut utiliser le Graphics pour dessiner (des points, lignes,


rectangles, ellipses, couleur..) ou y écrire.
 Rectangle permet de définir une zone.
 Pen correspond à un Stylet.
 Font correspond à une police de caractères
 Brush est une brosse.

[Link] 25/12/2008
Obtenir un objet Graphics
230

 Instancier un objet Graphics.

 Appeler la méthode CreateGraphics d'un


contrôle ou d'un formulaire

 Récupérer la référence de l'objet Graphics


argument de l'évènement Paint d'un
contrôle.

[Link] 25/12/2008
Instanciation de l'Objet Graphics
231

 Dim g as Graphics 'Graphics contient Nothing, je ne peux rien en faire.


 Il faut donc y associer un objet Image (un BitMap ou un MetaFile)pour
pouvoir travailler dessus.
 Pour obtenir un BitMap par exemple, on peut:
 Soit créer un objet BitMap vide:
Dim newBitmap As Bitmap = New Bitmap(600, 400)
Dim g as Graphics = [Link](newBitmap)
Paramètres= taille du BitMap mais il y a plein de surcharges

 Soit créer un BitMap à partir d'un fichier sur disque


C'est pratique si on veut modifier une image qui est dans un fichier: on la lit dans un BitMap puis on
passe la référence dans l'objet Graphics.
Dim myBitmap as New Bitmap("[Link]") 'Charge maPhoto dans le BitMap
Dim g as Graphics = [Link](myBitmap) 'Crée un Graphics et y associe le BitMap
g est un Graphics "pointant" sur l'image '[Link]' et je peux la modifier.

 Attention: le Graphics n'est pas 'visible', pour le voir il faut le mettre dans un composant (un
PictureBox par exemple) qui lui sera visible. On verra cela plus bas.

[Link] 25/12/2008
La méthode CreateGraphics
232

 On appelle la méthode CreateGraphics d'un contrôle ou d'un


formulaire afin d'obtenir une référence à un objet Graphics
représentant la surface de dessin de ce contrôle ou formulaire.
 Cette méthode est utilisée si vous voulez dessiner sur un formulaire ou
un contrôle existant ;
Dim g as Graphics
g = [Link] 'Pour un formulaire
Dim g as Graphics
g = [Link] 'Pour un contrôle Panel
 On peut ensuite dessiner sur g, cela sera immédiatement visible sur le
contrôle ou le formulaire (car g n'est pas un nouvel objet, il contient
seulement la référence, le handles, de l'image du contrôle; quand on
dessine sur g, en fait, on dessine sur l'image du contrôle).
 Il faut quand on n'utilise plus l'objet graphics, utiliser la méthode
Dispose pour le libérer.
[Link] 25/12/2008
Récupérer la référence de l'objet Graphics
233

 L'événements Paint des contrôles se déclenche lorsque le contrôle est redessiné, un objet
Graphics est fourni comme une valeur de PaintEventArgs.
 Pour obtenir une référence à un objet Graphics à partir des PaintEventArgs de
l'événement Paint et dessiner:
1. Déclarez l'objet Graphics
2. Assignez la variable pour qu'elle référence l'objet Graphics passé dans les PaintEventArgs.
3. Dessinez dans l'objet Graphics.
 Private Sub Form1_Paint(sender As Object, e As PaintEventArgs) Handles _
[Link] 'appelle la méthode Paint 'normale'

Dim g As Graphics = [Link]


' Dessiner avec g , cela affichera dans la Form1
End Sub

 Là aussi e est la référence à l'objet qui a déclenché Paint (Form1 ici), si je dessine sur e, en
fait je dessine sur Form1.
 Noter bien que e est visible uniquement dans Form1_Paint
 Pour forcer le déclenchement de l'évènement Paint et dessiner, on utilise la méthode
OnPaint
[Link] 25/12/2008
Comment dessiner?
234

 La classe Graphics fournit des méthodes


permettant de dessiner
 DrawImage 'Ajoute une image (BitMap ou MetaFile) à un
graphics déjà crée.
 DrawLine 'Trace une ligne
 DrawString 'Ecrit un texte
 DrawPolygon 'Dessine un polygone
 ...

[Link] 25/12/2008
Pour travailler on utilise les objets:
235
Brush (Brosse) Utilisé pour remplir des surfaces fermées avec des motifs, des couleurs ou des [Link] y a plusieurs types de brush:
La brosse peut être pleine et ne contenir qu'une couleur.
Dim SB= New SolidBrush([Link])
TextureBrush utilise une image pour remplir.
Dim SB= New TextureBrush(MonImage)
LinéarGradientBrush permet des dégradés (passage progressive d'une couleur à une autre).
Dim SB= New LinearGradientBrush(PointDébut, PointFin,Color1, Color2)
Les HatchBrush sont des brosse hachurées
Dim HatchBrush hb = new HatchBrush([Link], [Link],[Link](100, [Link]))
Les PathGradient sont des brosses plus complexes.
Pen (Stylet) Utilisé pour dessiner des lignes et des polygones, tels que des rectangles, des arcs et des [Link] créer un Stylet?
Dim blackPen As New Pen([Link]) 'on donne la couleur
Dim blackPen As New Pen([Link], 3) 'on donne couleur et l'épaisseur
Dim blackPen As New Pen(MyBrush) 'on peut même créer un stylet avec une brosse
Propriétés de ce Stylet:
DashStyle permet de faire des pointillés.
StartCap et EndCap définissent la forme du début et de la fin du dessin (rond, carré, flèche..)
Font (Police) Utilisé pour décrire la police utilisée pour afficher le texte.
Dim Ft= New Font("Lucida sans unicode",60) 'paramètres=nom de la font et taille
Il y a de nombreuses surcharges.
Dim Ft= New Font("Lucida sans unicode",60, [Link])'pour écrire en gras
Color Utilisé pour décrire la couleur utilisée pour afficher un objet particulier. Dans GDI+, la couleur peut être à contrôle
(Couleur) [Link] pour le rouge
Point Ils ont des cordonnées x, y
Dim point1 As New Point(120, 120) ' Point avec des Integer
ou des PointF 'avec des Singles
Rectangle Permet de définir un rectangle.
Dim r As New RectangleF(0, 0, 100, 100)
On remarque que le F après Point ou Rectangle veut dire 'Float', et nécessite l'usage de Single.
[Link] 25/12/2008
Exemple: Dessiner une ligne sur le graphique:
236

 Pour dessiner une ligne, on utilise DrawLine.


 Dim blackPen As New Pen([Link], 3) 'créer un stylet noir d'épaisseur 3
' Créer des points
Dim point1 As New Point(120, 120) 'créer des points
Dim point2 As New Point(600, 100)
' Dessine la ligne
[Link](blackPen, point1, point2)

 On aurait pu utiliser une surcharge de Drawline en spécifiant directement les


coordonnées des points.
 Dim x1 As Integer = 120
Dim y1 As Integer = 120
Dim x2 As Integer = 600
Dim y2 As Integer = 100
[Link](blackPen, x1, y1, x2, y2)

[Link] 25/12/2008
Exemple:Dessiner une ellipse
237

 Définir un rectangle dans lequel sera dessiné l'ellipse.


 Dim r As New RectangleF(0, 0, 100, 100)
 [Link](New Pen([Link]), r) ' Dessinons l' ellipse

[Link] 25/12/2008
Exemple: Dessiner un rectangle
238

 [Link](myPen, 100, 50, 80, 40)

 Dessiner un rectangle plein:


 [Link](new SolidBrush([Link]), 300,15,50,50)

[Link] 25/12/2008
Exemple: Dessiner un polygone
239

 Dim MyPen As New Pen([Link], 3)


' Créons les points qui définissent le polygone
Dim point1 As New Point(150, 150)
Dim point2 As New Point(100, 25)
Dim point3 As New Point(200, 5)
Dim point4 As New Point(250, 50)
Dim point5 As New Point(300, 100)
Dim point6 As New Point(350, 200)
Dim point7 As New Point(250, 250)
Dim curvePoints As Point() = {point1, point2, point3, point4, _
point5, point6, point7}
' Dessinons le Polygone.
[Link](MyPen, curvePoints

[Link] 25/12/2008
Exemple: Ecrire du texte sur le graphique
240

 Pour cela on utilise la méthode DrawString de l'objet graphique:


 [Link] ("Salut", [Link], New SolidBrush (ColorBlack), 10, 10)
 Paramètres:
 Texte à afficher.
 Police de caractères
 Brosse , cela permet d'écrire avec des textures.
 Coordonnées.
 Si on spécifie un rectangle à la place des 2 derniers paramètres, le
texte sera affiché dans le rectangle avec passage à la ligne si
nécessaire:
 Dim rectangle As New RectangleF (100, 100, 150, 150 )
 Dim T as String= "Chaîne de caractères très longue"
 [Link] (T, [Link], New SolidBrush (ColorBlack), Rectangle)

[Link] 25/12/2008
Exemple: Ajouter une image sur le graphique
241

 Pour cela on utilise la méthode DrawImage de l'objet graphique:

[Link](New Bitmap("[Link]"), 29, 20, 283, 212)


ou
Dim myBMP As New BitMap ("[Link]")
[Link](myBMP, 10, 10)
Le point de destination du coin supérieur gauche de l'image, (10, 10),
est spécifié par les deuxième et troisième paramètres.

[Link](myBMP) 'est aussi possible

 On peut travailler avec des images .jpeg .png .bmp .Gif .icon .tiff .exif

[Link] 25/12/2008
Exemple: Comment voir un Graphics?
242

 Si on a instancé un objet Graphics, on ne le voit pas. Pour le voir il faut le mettre dans
un PictureBox par exemple:

Dim newBitmap As Bitmap = New Bitmap(200, 200) 'créons un BitMap


Dim g As Graphics = [Link](newBitmap) 'créons un Graphics et y mettre le BitMap
Dim r As New RectangleF(0, 0, 100, 100) ' Dessinons une ellipse
[Link](New Pen([Link]), r)
 Comment voir l'ellipse?
 Ajoutons un PictureBox au projet, et donnons à la propriété Image de ce
PictureBox le nom du BitMap du Graphics:
[Link] = newBitmap
 L'ellipse rouge apparaît!! Si ,Si!!
 Si on utilise un objet Graphics représentant la surface de dessin d'un contrôle:
 Le fait de dessiner sur le graphics affiche automatiquement le dessin sur le
contrôle.

[Link] 25/12/2008
Gestion des erreurs
243
 Même les programmes les mieux conçus rencontrent parfois des erreurs.
 Certaines erreurs sont des défauts au sein de votre code, qui peuvent être localisés, puis corrigés.
 D'autres erreurs sont une conséquence normale du fonctionnement du programme ; par exemple, votre programme
peut tenter d'ouvrir un fichier qui est déjà en cours d'utilisation. Dans les cas de ce type, les erreurs peuvent être
prévues, mais ne peuvent pas être empêchées. En tant que programmeur, votre travail consiste à prévoir ces erreurs
et à aider votre programme à les traiter.
 Vous pouvez utiliser le bloc Try...Catch...Finally pour gérer les erreurs d'exécution au sein de
votre code. Vous pouvez appliquer Try à un segment de code ; si une exception est générée par
ce code, le programme passe au bloc Catch. Le code présent dans le bloc Catch est alors
exécuté. Une fois l'exécution de ce code terminée, tout code présent dans le bloc Finally est
exécuté. Le bloc Try...Catch...Finally entier est fermé par une instruction End Try
L'exemple suivant illustre l'utilisation de chaque bloc :
Try
' Code here attempts to do something.
Catch
' If an error occurs, code here will be run.
Finally
' Code in this block will always be run.
End Try
 En premier lieu, le code du bloc Try est exécuté. S'il s'exécute sans erreur, le programme passe
au bloc Catch et exécute le code dans le bloc Finally. Si une erreur se produit dans le bloc Try,
l'exécution passe immédiatement au bloc Catch. Le code présent dans ce bloc est alors exécuté.
Ensuite, le code du bloc Finally est exécuté.

[Link] 25/12/2008
244

PROGRAMMATION ORIENTÉE OBJET

[Link] 25/12/2008
Programmation Orientée Objet (POO)
245

 Qu'est ce qu’un Programme Orientée


Objet ?
 Ensemble d'objets autonomes et responsables qui
s'entraident pour résoudre un problème final en
s'envoyant des messages.

Objet 1 Message

Objet 3

Objet 2
[Link] 25/12/2008
Programmation Orientée Objet
246

 Qu’est ce qu’un objet


 Objet = Données + Méthodes (Fonctions Membres)

Fonction 1 Fonction 2

Fonction Fonction
DONNEES 3
6

Fonction 5 Fonction 4

[Link] 25/12/2008
Programmation Orientée Objet
247

 Exemple d’un objet

Résistance

SetValueR SetValueP

GetRmin R P GetValueR

GetRmax GetValueP

[Link] 25/12/2008
Programmation Orientée Objet
248

 Encapsulation des données


 L‟accès aux données des objets est réglementé
 Données privées  accès uniquement par les fonctions
membres
 Données publiques  accès direct par l‟instance de l‟objet
 Conséquences
 Un objet n‟est vu que par ses spécifications
 Une modification interne est sans effet pour le fonctionnement
général du programme
 Meilleure réutilisation de l‟objet
 Exemple de la résistance
 Les données R et P ne peuvent être utilisées que par les
fonctions membres
[Link] 25/12/2008
Programmation Orientée Objet
249

 Polymorphisme (du Grecqueplusieurs


formes)
 Un nom (de fonction, d‟opérateur) peut être associé à
plusieurs mais différentes utilisations
 Exemple
 Si a est un nombre complexe, sqrt(a) appellera si elle existe la
fonction adaptée au type de a.
 Dans un langage non OO, il aurait fallu connaître le nom de
deux fonctions distinctes (selon que a soit complexe ou réel)
 C‟est le système qui choisit selon le type de l‟argument ou de
l‟opérande

[Link] 25/12/2008
Programmation Orientée Objet
250

 L’Héritage
 Permet de définir les bases d‟un nouvel objet à partir d‟un
objet existant
 Le nouvel objet hérite des propriétés de l‟ancêtre et peut
recevoir de nouvelles fonctionnalités
 Avantages
 Meilleures réutilisations des réalisations antérieures
parfaitement au point

[Link] 25/12/2008
Programmation Orientée Objet
251

 Concept de Classe
 Type réunissant une description
 D‟une collection de données membres hétérogènes ayant un
lien entres elles
 D‟une collection de méthodes (fonctions membres) servant à
manipuler les données membres
 Généralisation du type structure ou record des langages
non OO (classe = définition de données + définition de
méthodes)
 Possibilité de fixer la visibilité externe des différents
constituants de la classe

[Link] 25/12/2008
Programmation Orientée Objet
252

 Instance d’une classe


 C‟est un objet initialisé à partir de la description figée d‟une
classe
 Fonctions membres publiques
 Les constructeurs
 Les destructeurs
 Les accesseurs
 Les modificateurs

[Link] 25/12/2008
Programmation Orientée Objet
253

 Les Constructeurs
 Permettent d‟initialiser l‟objets lors de sa création
 copie des arguments vers les données membres
 initialisation de variables dynamiques à la création de l‟objet
 Sont appelés de manière automatique à la création de
l‟objet
 Peuvent être surchargésOn peut en définir plusieurs de
même nom mais acceptant des arguments différents
 Possèdent le même nom que la classe

[Link] 25/12/2008
Programmation Orientée Objet
254

 Le Destructeur
 Il est unique

 Est appelé automatiquement lors de la destruction de l‟objet

 Sert généralement à éliminer les variables dynamiques de


l‟objet (créées en général par le constructeur)
 Il a pour nom le nom de la classe précédé du symbole ~

[Link] 25/12/2008
Programmation Orientée Objet
255

 Les Accesseurs
 Catégorie de fonctions membres qui permettent l‟accès et
l‟utilisation des informations privées contenues dans l‟objet

 Les Modificateurs
 Permettent de modifier l‟état des données internes (publiques
ou privées) de l‟objet

[Link] 25/12/2008
Programmation Orientée Objet
256

 Définition d’une Classe en [Link]

Public Class nom_classe



End Class

[Link] 25/12/2008
Programmation Orientée Objet
257

 Exemple
Public Class Complex
Public Real As Double
Public Imag As Double

Public Sub New(ByVal rp As Double, ByVal ip As Double)


Real = rp
Imag = ip
End Sub

Public Sub Module() As Double


Return [Link](Me. Real ^ 2 + Me. Imag ^ 2)
End Sub

End Class
[Link] 25/12/2008
Programmation Orientée Objet
258
 Création d’un objet
 Dim nom_objet As nom_classe = New nom_classe (arguments)
 Exemple:
 Dim lhs As Complex = New Complex(2.1, 3.3)

 Accès aux données publiques d’un objet


 Nom_Objet.Nom variable
 Exemple: [Link] 'Accède à la partie imaginaire du nombre
complexe LHS
 Accès aux fonctions membres publiques d’un objet
 Nom_Objet.Nom fonction
 Exemple: [Link]() 'Accède à la fonction membre « Module »
du nombre complexe LHS

[Link] 25/12/2008
Programmation Orientée Objet
259

 Surcharge des Fonctions


 On peut définir des fonctions de même nom mais se différentiant
par le nombre et le type d'arguments
 Exemple:
Public Overloads Function ToString() As String
Return [Link] & IIf([Link]<0,"-i","+i") & [Link]
End Function

 Le système choisira la fonction à appeler selon les arguments.


 Exemple:
 Dim i as integer = 12 „[Link] donnera "12"

 Dim x as Double= 1.2 „[Link] donnera "1.2"

 Dim lhs As Complex = New Complex(2.1, -3.3)


„[Link] donnera "2.1-i 3.3"

[Link] 25/12/2008
Programmation Orientée Objet
260

 Surcharge des opérateurs en C++


 Même principe que la surcharge des fonctions
 Le fonctionnement de l'opérateur s'effectue en fonction du nombre et
du type des opérandes
Shared Operator +(ByVal C1 As Complex, ByVal C2 As Complex) As Complex
Return New Complex([Link] + [Link], [Link] + [Link])
End Operator
 La surcharge d'un opérateur doit obligatoirement s'associer à une
classe
 'new Complex + operator works intuitively

 Dim lhs As Complex = New Complex(2.1, 3.3)


 Dim rhs As Complex = New Complex(2.5, 4.6)
 Dim res As Complex = lhs + rhs
 '[Link] = 4.6, [Link] = 7.9
[Link] 25/12/2008
Webographie
261

 [Link]
 [Link]
Langage_Objet
 [Link]
 [Link]
 [Link]
fr/library/xk24xdbe(VS.80).aspx

[Link] 25/12/2008

Vous aimerez peut-être aussi