Search this site
Embedded Files
Mon BBC SDL pas à pas
  • Accueil
  • BBC BASIC
  • BBC OS
  • BBC MODULES
  • RUBRIQUES
  • LIENS
Mon BBC SDL pas à pas
  • Accueil
  • BBC BASIC
  • BBC OS
  • BBC MODULES
  • RUBRIQUES
  • LIENS
  • More
    • Accueil
    • BBC BASIC
    • BBC OS
    • BBC MODULES
    • RUBRIQUES
    • LIENS

⇨ 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

vos remarques, vos commentaires et de vos suggestions.

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.

Google Sites
Report abuse
Page details
Page updated
Google Sites
Report abuse