⇨ MENU ⇨ BIBLIOTHEQUE ⇨ eventlib.bbc
PROC_eventregister()
⇨ MENU ⇨ BIBLIOTHEQUE ⇨ eventlib.bbc
PROC_eventregister()
DESCRIPTION.
La procédure PROC_eventregister() permet de définir la procédure personnalisée qui sera invoquée si l'événement précisé survient durant la vie du programme.
SYNTAXE.
PROC_eventregister( evenement , PROC_Nom() )
REMARQUES.
evenement doit être une valeur numérique correspondante à une commande windows et identifié par sa valeur de la variable système @msg%, Le nombre de commandes disponibles, et leur identification, peut varier en fonction du système d'exploitation de la machine hote. Par exemple :
- 0, la file d'attente des événement à débordée ;
- 275 ( &113 ), pour surveiller le timer (WM_TIMER) ;
- 512 ( &200 ), pour surveiller les mouvements de la souris (WM_MOUSEMOVE) ;
- 513 ( &201 ), pour surveiller le bouton gauche de la souris est appuyé (WM_LBUTTONDOWN) ;
- 514 ( &202 ), pour surveiller le bouton gauche de la souris est relaché (WM_LBUTTONUP) ;
- 515 ( &203 ), pour surveiller double clique sur le bouton gauche (WM_LBUTTONDBLCLK) ;
- 516 ( &204 ), pour surveiller le bouton droit de la souris est appuyé (WM_RBUTTONDOWN) ;
- 517 ( &205 ), pour surveiller le bouton droit de la souris est relaché (WM_RBUTTONUP) ;
- 518 ( &206 ), pour surveiller double clique sur le bouton droit (WM_RBUTTONDBLCLK) ;
- 519 ( &207 ), pour surveiller le bouton central de la souris est appuyé (WM_MBUTTONDOWN) ;
- 520 ( &208 ), pour surveiller le bouton central de la souris est relaché (WM_MBUTTONUP) ;
- 521 ( &209 ), pour surveiller double clique sur le bouton central (WM_MBUTTONDBLCLK) ;
- 522 ( &20A ), pour surveiller la molette de la souris est actionnée verticalement (WM_MOUSEWHEEL) ;
- 526 ( &20E ), pour surveiller la molette de la souris est actionnée horizontalement (WM_MOUSEHWHEEL).
Par convention, mais sans que cela soit obligatoire, on utilisera le plus souvent possibles les valeurs hexadécimales.
PROC_Nom() doit être est l'identifiant, le nom, de la procédure personnalisée à invoquer. La paire de paranthèses est obigatoire, mais elle doit être vide. Par contre, la définition de la procédure, doit attendre trois attributs. Ces trois attributs recevront les valeurs des variables système : @msg%, @wparam% et lparam%, dans cet ordre, mais avec des identifiants différents. Par exemple : DEF PROC_Nom( Qm , Qw , Ql ).
Si un événement doit exécuter plusieurs procédures personnalisées, on devra utiliser autant de fois la procédure PROC_eventregister() que nécessaire, le dernier enregistré étant appelé en premier.
PROC_eventregister( &201 , PROC_Tousboutons() )
PROC_eventregister( &201 , PROC_BoutonG() )
Si plusieurs événements doivent exécuter la même procédure personnalisée, on devra utiliser autant de fois la procédure PROC_eventregister() que nécessaire.
PROC_eventregister( &201 , PROC_Tousboutons() )
PROC_eventregister( &204 , PROC_Tousboutons() )
PROC_eventregister( &207 , PROC_Tousboutons() )
La procédure personnalisée, associée à un ou plusieurs événements, ne sera exécutée que si la procédure PROC_eventpoll est invoqué et retourne la valeur de l'événement.
Rappel : le gestionnaire d'événement ON CLOSE n'est pas pris en compte par le module eventlib.
Rappel : la procédure PROC_eventinit devra toujours être appelée avant tout autre procédure de eventlib.bbc.
La procédure PROC_eventregister() est importée depuis la module eventlib.bbc.
EXEMPLE.
REM --- Importation des modules ---
REM --- Module de la bibliothèque BBC BASIC ---
INSTALL @lib$ + "eventlib.bbc"
REM --- INITIALISISATION GENERALE ---
REM --- Definition du gestionnaire d'evenements ---
PROC_eventinit
PROC_eventregister( &201 , PROC_Test() ) : REM &201 valeur correspondante à la commande WM_LBUTTONDOWN
PROC_eventregister( &204 , PROC_Test() ) : REM &204 valeur correspondante à la commande WM_RBUTTONDOWN
PROC_eventregister( &207 , PROC_Test() ) : REM &205 valeur correspondante à la commande WM_MBUTTONDOWN
REM --- Boucle principale ---
PRINT "Appuyez sur un bouton de la souris ou sur la touche Q pour quitter."
REPEAT
PROC_eventpoll : REM interroge la file des evenements et execute une procédure personnalises si besoin
kpause$ = INKEY$( 5 )
UNTIL kpause$ = "Q" OR kpause$ = "q"
REM --- Fin du programme ---
PRINT : PRINT "Au revoir."
END
REM --- DEFINITION DES PROCEDURES PERSONNALISEES ---
REM --- Gestionnaire d'evenement des boutons ---
DEF PROC_Test( Qm , Qw , Ql )
CASE Qm OF
WHEN 513 : kbouton$ = "gauche"
WHEN 516 : kbouton$ = "droit"
WHEN 519 : kbouton$ = "central"
OTHERWISE : kbouton$ = "non identifie"
ENDCASE
kabscisse = Ql AND &FFFF
kabscisse = ( Ql >> 16 ) AND &FFFF
PRINT TAB( 0 , 2 ) "Le bouton " ; kbouton$ ; " a ete enclenche. "
PRINT "Coordonnees du pointeur : " ; kabscisse ; "," ; kabscisse ; " "
ENDPROC
Votre aide est précieuse pour améliorer ce site, alors n'hésitez pas à faire part de
Dans la RETROGICIEL vous trouvez des suggestions simples et classiques pour
TESTER - DÉCOUVRIR - PRATIQUER - APPROFONDIR - EXPLORER
avec un exemple de résolution à télécharger pour vous inspirer.