PANORAMIC:
CLICKED ET ON_CLICK
PAGE PRINCIPALE /PAGE TUTORIELS
Il y a 2 possibilités pour traiter l'événement "Il y a eu un clic de souris sur un objet":
Objets sensibles à un clic de souris
Seuls les objets visibles et pour lesquels un clic a un sens sont sensibles à un clic de souris:
BUTTON
EDIT
MEMO
LIST
COMBO
ALPHA
OPTION
CHECK
SCENE3D
FORM
PICTURE
SUB_MENU
Utilisation d'un clic de souris
Lorsqu'on clique sur un objet, il y a 2 manières d'exploiter le fait qu'on a cliqué sur l'objet:
Première méthode:
On teste directement par la fonction CLICKED(N) que l'objet système numéro N a été cliqué .
Cette
fonction rend 1 si on a cliqué sur l' objet numéro N et 0 sinon.
Sa particularité est qu'elle mémorise un clic sur un objet: si
elle est appelée longtemps après le clic, elle donnera quand même
le résultat "1".
De plus, s'il y a eu un clic, sa valeur est réinitialisé après
la lecture. Si la valeur est 1, elle est alors réinitialisée à
0 pour prendre en compte un nouveau clic sur l'objet.
La
fonction CLICKED(N) permet de tester en
mode séquentiel s'il y a eu un click sur l'objet de numéro N.
Le mode séquentiel est une technique de programmation qui permet de tout
controler par le programme et de tester par le programme si des événements
ont eu lieu.
Deuxième méthode:
On
écrit un sous-programme, défini par un LABEL
(et se terminant par RETURN comme tout sous-programme)
qui sera exécuté à chaque fois que l'objet système
sera cliqué.
Avec cette autre technique de programmation, appelée programmation événementielle,
on définit dans un sous-programme ce qui se passe quand un événement
arrive, en l'occurence, le clic sur un objet système et c'est le système
d'exploitation (Windows) qui fera exécuter ce sous-programme quand l'événement
arrivera.
Pour relier ce sous-programme à l'objet système, on utilise la commande ON_CLICK(N) , abc
ON_CLICK(N) , abc signifie : tout clic sur l'objet numéro N provoquera l'exécution de la partie du programme commençant par "abc".
On va effectuer la même action, mais en utilisant les deux méthodes possibles:
On va par exemple afficher dans le bandeau de la fenêtre "on a cliqué" lorsqu'on clique sur un bouton.
Méthode séquentielle: on teste l'événement par programme avec CLICKED
On crée d'abord le bouton : BUTTON 1
Comme on doit tester continuellement l'état du bouton par CLICKED on va mettre cette commande dans une boucle WHILE.
|
button 1 : rem on crée un bouton (objet système numéro 1) while clicked(1) = 0 : rem tant qu'on n'a pas cliqué sur le bouton wait 100 : rem on fait 100 millisecondes de pause... end_while : rem on retourne tester l'état du bouton...
caption 0 , "on a cliqué" : rem on affiche un texte dans le bandeau de la fenêtre
|
Méthode événementielle: on affecte un sous-programme à un événement
A
chaque fois qu'on clique sur un bouton, on va exécuter la partie de programme
qui commence par exemple par "clique".
"clique"
est un LABEL. On le définit par le
mot-clé LABEL.
On crée un bouton: BUTTON 1
Puis par la commande on_click 1,clique
on indique qu'à chaque fois qu'on cliquera sur l'objet système numéro 1 (c'est à dire le bouton), on exécutera la partie du programme marquée par le LABEL clique.
|
label clique : rem on crée une marque (un "label" en anglais)
button 1 : rem on crée un bouton (objet système numéro 1) on_click 1,clique : rem à chaque clic sur l'objet 1 on exécute à partir de "clique" end : rem fin du programme principal
clique: caption 0 , "on a cliqué" : rem on affiche un texte dans le bandeau de la fenêtre return : rem fin du sous-programme
|
Mise à jour : 10 novembre 2008