Au 3 top le déclencheur activera le bombe EVENEMENTIELLE &...
Transcript of Au 3 top le déclencheur activera le bombe EVENEMENTIELLE &...
PROGRAMMATION
EVENEMENTIELLE
& INTERFACE GRAPHIQUE
B1SIO1 - 2011
Il se passe quoi
si j’appuie ici ?
Au 3ème top
le déclencheur
activera le bombe
Déclencheur
Prise de photo
Affichage/Stockage
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
L’utilisateur fait ce que lui demande l’application !
Affichage / attente
Saisie
Entrez une
valeur :
25
Interface graphique :
L’utilisateur a le contrôle
Introduction à la programmation événementielle Fonctionnement des interfaces graphiques
// 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();
}
…
}
Interface graphique :
L’utilisateur a le contrôle
Introduction à la programmation événementielle Fonctionnement des interfaces graphiques
Frappe de clavier
Clic de souris
// PROGRAMME
Main()
{
…
while(true)
{
e = getNextEvent();
processEvent();
}
…
}
on peut à tout moment
sélectionner, cliquer, changer de
fenêtre ...
application « esclave » de
l’utilisateur
dialogue multi-fils : plusieurs
fenêtres peuvent avoir une
activité et déclencher des
événements (si mode non modale)
Restitution
résultat
Evénement
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.
Conséquences :
Application toujours prête à réagir
Programmation événementielle
Introduction à la programmation événementielle Fonctionnement des interfaces graphiques
UTILISATEUR
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
APPLICATION GRAPHIQUE
Evé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
Introduction à la programmation événementielle
Types d’événements
UTILISATEUR
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
APPLICATION GRAPHIQUE
Evénements
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
Clic de 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
Je clique sur le
bouton « Tarif
Applicable »
Je déclenche un événement « clic de
bouton » qui peut lancer ou non une
séquence d’instructions, suivant ce que
le programmeur a prévu.
Exemple : clic sur un bouton
Déclenchement d’un événement
Je sélectionne un
horaire dans la
liste
Je déclenche un événement
« changement de valeur sélectionnée »
qui peut lancer ou non une séquence
d’instructions, suivant ce que le
programmeur a prévu.
Exemple : sélection d’une valeur dans un ComboBox
Absence de traitement d’un événement
Je sélectionne
« Etudiant ou
mineur »
Je déclenche un événement « CheckedChanged »
(changement de « coché » ) qui peut lancer ou non une
séquence d’instructions, suivant ce que le programmeur a
prévu.
Exemple : Changement de sélection de tarif
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.
Le contrôle qui est à l’origine de
l’événement déclenché est passé
en paramètre.
Procédure événementielle : par défaut son nom
est composé du nom du contrôle, d’un underscore
(_), suivi du nom de l’événement déclencheur : ici
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.
Hiérarchie de classes, à laquelle
appartient la classe « Label »
Liste des contrôles que
l’on a insérés sur le
formulaire, avec leur type. Nom d’un contrôle
Type du contrôle =
classe à laquelle
appartient le contrôle
Programmation événementielle
A RETENIR
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.
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)