Au 3 top le déclencheur activera le bombe EVENEMENTIELLE &...

16
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

Transcript of Au 3 top le déclencheur activera le bombe EVENEMENTIELLE &...

Page 1: Au 3 top le déclencheur activera le bombe EVENEMENTIELLE & …mariepascal.delamare.free.fr/IMG/pdf/1... · 2013-02-05 · Introduction à la programmation événementielle La programmation

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

Page 2: Au 3 top le déclencheur activera le bombe EVENEMENTIELLE & …mariepascal.delamare.free.fr/IMG/pdf/1... · 2013-02-05 · Introduction à la programmation événementielle La programmation

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

Page 3: Au 3 top le déclencheur activera le bombe EVENEMENTIELLE & …mariepascal.delamare.free.fr/IMG/pdf/1... · 2013-02-05 · Introduction à la programmation événementielle La programmation

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

Page 4: Au 3 top le déclencheur activera le bombe EVENEMENTIELLE & …mariepascal.delamare.free.fr/IMG/pdf/1... · 2013-02-05 · Introduction à la programmation événementielle La programmation

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();

}

}

Page 5: Au 3 top le déclencheur activera le bombe EVENEMENTIELLE & …mariepascal.delamare.free.fr/IMG/pdf/1... · 2013-02-05 · Introduction à la programmation événementielle La programmation

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.

Page 6: Au 3 top le déclencheur activera le bombe EVENEMENTIELLE & …mariepascal.delamare.free.fr/IMG/pdf/1... · 2013-02-05 · Introduction à la programmation événementielle La programmation

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

Page 7: Au 3 top le déclencheur activera le bombe EVENEMENTIELLE & …mariepascal.delamare.free.fr/IMG/pdf/1... · 2013-02-05 · Introduction à la programmation événementielle La programmation

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

Page 8: Au 3 top le déclencheur activera le bombe EVENEMENTIELLE & …mariepascal.delamare.free.fr/IMG/pdf/1... · 2013-02-05 · Introduction à la programmation événementielle La programmation

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

Page 9: Au 3 top le déclencheur activera le bombe EVENEMENTIELLE & …mariepascal.delamare.free.fr/IMG/pdf/1... · 2013-02-05 · Introduction à la programmation événementielle La programmation

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…

Page 10: Au 3 top le déclencheur activera le bombe EVENEMENTIELLE & …mariepascal.delamare.free.fr/IMG/pdf/1... · 2013-02-05 · Introduction à la programmation événementielle La programmation

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

Page 11: Au 3 top le déclencheur activera le bombe EVENEMENTIELLE & …mariepascal.delamare.free.fr/IMG/pdf/1... · 2013-02-05 · Introduction à la programmation événementielle La programmation

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

Page 12: Au 3 top le déclencheur activera le bombe EVENEMENTIELLE & …mariepascal.delamare.free.fr/IMG/pdf/1... · 2013-02-05 · Introduction à la programmation événementielle La programmation

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

Page 13: Au 3 top le déclencheur activera le bombe EVENEMENTIELLE & …mariepascal.delamare.free.fr/IMG/pdf/1... · 2013-02-05 · Introduction à la programmation événementielle La programmation

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

Page 14: Au 3 top le déclencheur activera le bombe EVENEMENTIELLE & …mariepascal.delamare.free.fr/IMG/pdf/1... · 2013-02-05 · Introduction à la programmation événementielle La programmation

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

Page 15: Au 3 top le déclencheur activera le bombe EVENEMENTIELLE & …mariepascal.delamare.free.fr/IMG/pdf/1... · 2013-02-05 · Introduction à la programmation événementielle La programmation

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

Page 16: Au 3 top le déclencheur activera le bombe EVENEMENTIELLE & …mariepascal.delamare.free.fr/IMG/pdf/1... · 2013-02-05 · Introduction à la programmation événementielle La programmation

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)