Vous êtes sur la page 1sur 16

Il se passe quoi

si j’appuie ici ?

Déclencheur

Prise de photo

Au 3ème top
le déclencheur
PROGRAMMATION activera le bombe

Affichage/Stockage EVENEMENTIELLE
& INTERFACE GRAPHIQUE
B1SIO1 - 2011
Introduction à la programmation événementielle

 La programmation événementielle est fondée sur les


événements
 La programmation événementielle s’oppose à la
programmation séquentielle :
 Programmation séquentielle : exécution d’une suite
d’instructions dans un ordre programmé
 Programmation événementielle : réaction aux différents
événements qui peuvent se produire :
 Soit des événements système
 Soit des événements provoqués par l’utilisateur
Introduction à la programmation événementielle
 Fonctionnement de la programmation classique (pour rappel)

 Programmation « classique » (ex : application console) :


 L’application a le contrôle

Affichage / attente Entrez une


valeur :
25

Saisie

 L’utilisateur fait ce que lui demande l’application !


Introduction à la programmation événementielle
 Fonctionnement des interfaces graphiques

 Interface graphique :
 L’utilisateur a le contrôle
// PROGRAMME
Main()
{

while(true) // tantque Mamie s’active
{
// récupérer son action (faire une maille …)
e = getNextEvent();
// traiter son action (agrandir le tricot …)
processEvent();
}

}
Introduction à la programmation événementielle
 Fonctionnement des interfaces graphiques

 Interface graphique :
 L’utilisateur a le contrôle

on peut à tout moment // PROGRAMME Frappe de clavier


sélectionner, cliquer, changer de Main()
fenêtre ... {

application « esclave » de
while(true)
l’utilisateur
{
Evénement
dialogue multi-fils : plusieurs e = getNextEvent();
fenêtres peuvent avoir une processEvent();
} Restitution
activité et déclencher des résultat
événements (si mode non modale) …
} Clic de souris

NB : Lorsqu’une fenêtre (un formulaire) est ouverte en mode


modal, seuls les événements en provenance de cette fenêtre sont
traités ; l’utilisateur ne peut pas interagir sur les autres fenêtres.
Introduction à la programmation événementielle
 Fonctionnement des interfaces graphiques

 Conséquences :
 Application toujours prête à réagir
 Programmation événementielle

Evénements

UTILISATEUR APPLICATION GRAPHIQUE

 Evénement (ou message)


 Envoyé à l’application ciblée (suivant par ex. position souris, curseur)
 Chaque action élémentaire de l’application, peut être ignorée ou peut
déclencher un traitement particulier
Introduction à la programmation événementielle
Types d’événements
 Un événement :
 Est un objet envoyé à l’application
 Contient des informations dépendant du type d’événement
 Par exemple, la position de (x, y) de la souris

Evénements

UTILISATEUR APPLICATION GRAPHIQUE

 Programmation événementielle = Technique très générale


 Pas limitée aux interfaces graphiques
 Utilisée pour la communication entre objets, entre applications
 Eventuellement via un réseau
 Utilisée dans les systèmes d’exploitation
Programmation classique / événementielle
(résumé)

 Programmation « classique », « séquentielle », voire


« procédurale »:
 Le déroulement du programme est contrôlé par une
séquence d’instructions écrites par le programmeur
 Programmation « Evénementielle » :
 Le déroulement du programme est contrôlé par
l’arrivée d’événements, dont certaines actions de
l’utilisateur

Dring !!!
Programmation événementielle
 Evénements liés aux périphériques
 Clicde souris sur un bouton
 Frappe au clavier
 Sélection d’un item dans une liste déroulante
 Entrée/sortie du curseur dans une fenêtre, dans un contrôle
 Etc…

 Evénements liés aux applications et au système


 Création / Ouverture/ Chargement / Fermeture /
Destruction de fenêtre
 Validation d’une boite de dialogue
 Tic d’horloge
 Etc…
Déclenchement d’un événement

 Exemple : clic sur un bouton

Je clique sur le Je déclenche un événement « clic de


bouton « Tarif bouton » qui peut lancer ou non une
Applicable » séquence d’instructions, suivant ce que
le programmeur a prévu.
Déclenchement d’un événement

 Exemple : sélection d’une valeur dans un ComboBox


Je déclenche un événement
« changement de valeur sélectionnée »
Je sélectionne un
qui peut lancer ou non une séquence
horaire dans la
d’instructions, suivant ce que le
liste
programmeur a prévu.
Absence de traitement d’un événement

 Exemple : Changement de sélection de tarif

Je déclenche un événement « CheckedChanged »


Je sélectionne (changement de « coché » ) qui peut lancer ou non une
« Etudiant ou séquence d’instructions, suivant ce que le programmeur a
mineur » prévu.

Le programmeur n’a pas écrit de procédure


événementielle associée à cet événement.
 Aucun traitement particulier n’est effectué dans
l’immédiat !
NB: Le changement de sélection sera exploité
ultérieurement, par exemple quand l’utilisateur
cliquera sur « Tarif Applicable ».
Programmation événementielle en
VB.net
 Les formulaires
 L’IDE* Visual Studio sépare le code d’un formulaire en deux fichiers
 Le fichier .vb contient essentiellement le code écrit par le développeur, à
savoir les procédures événementielles.
 Le fichier .Designer.vb contient le code généré automatiquement lors de la
conception : la définition des contrôles utilisés, leur postition, etc … Les
modifications des propriétés associées aux contrôles, par le biais de
l’interface graphique, sont répertoriées dans ce fichier.

Code écrit par le


développeur.

Partie de code générée par l’IDE


lorsque l’utilisateur, conçoit le formulaire
en mode graphique, notamment en
cliquant/glissant les contrôles, puis en
modifiant leurs propriétés.

*IDE = Environnement de développement


Programmation événementielle en
vb.net
 Le code événementiel associé au formulaire (1)
 Form.vb
 Il contient le code écrit par le développeur,
 Donc les procédures événementielles contenant les instructions à exécuter
lorsqu’un événement survient.
Un formulaire est décrit dans une classe. La classe
est le modèle de construction (le plan) qui
permettra de créer (d’instancier) concrètement un
formulaire.

Procédure événementielle : par défaut son nom


Le contrôle qui est à l’origine de
est composé du nom du contrôle, d’un underscore
l’événement déclenché est passé
(_), suivi du nom de l’événement déclencheur : ici
en paramètre.
le changement d’index (de ligne) dans la listebox
contenant le nom des animaux
Programmation événementielle en
vb.net
 Le code généré par l’IDE (1)
 NomFormulaire.Designer.vb
 Il contient le code de conception du formulaire, notamment les propriétés du
formulaire,
 Mais aussi les différents contrôles déposés sur ce formulaire, avec l’initialisation
des différentes propriétés.

Liste des contrôles que


l’on a insérés sur le
Nom d’un contrôle formulaire, avec leur type.

Hiérarchie de classes, à laquelle Type du contrôle =


appartient la classe « Label » classe à laquelle
appartient le contrôle
Programmation événementielle

Les interfaces graphiques reposent sur les principes de la


programmation événementielle.
Un événement peut être déclenché par l’utilisateur (clic de
souris, sélection …), mais aussi par le système (chargement ou
fermeture d’une feuille, top d’horloge …).
Le système capte ces différents événements et les traite dans
leur ordre d’arrivée. En programmation événementielle, le
programmeur prévoit le traitement à effectuer lorsque l’événement
se produit.
A RETENIR
Les instructions à exécuter sont regroupées dans une
procédure événementielle (ou gestionnaire d’événement) que l’on
associe au composant concerné par l’événement.

Sources d’inspiration : Internet, notamment Wikipedia + Diaporama d’Eric Lecolinet (ENST Paris)

Vous aimerez peut-être aussi