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 ⇨ BBC BASIC

ON SYS

DESCRIPTION.


Le gestionnaire ON SYS est utilisé pour réagir si un événement système non géré se produit.

L'instruction ON SYS OFF est utilisée pour annuler la surveillance des événements système non gérés.


Le gestionnaire ON SYS LOCAL est utilisé si un événement système non géré se produit dans un bloc d'instructions.

L'instruction ON SYS LOCAL OFF est utilisée pour annuler la surveillance des événements système dans le bloc d'instructions.




SYNTAXE.


ON SYS action : RETURN

ON SYS OFF


ON SYS LOCAL action : RETURN

ON SYS LOCAL OFF




REMARQUES.


action peut être : 

- une instruction unique à exécuter ;

- une suite d'instructions, séparées par :, à exécuter ;

- un identifiant, tel qu'une procédure ou une fonction personnalisée, à exécuter ;


Le gestionnaire ON SYS active la surveillance des événements système qui se serait pas interceptés par une autre gestionnaire d'événements. Si un tel événement se produit, alors :

- le déroulement du programme est suspendu ;

- le pointeur d’exécution est sauvegardé dans la pile ;

- action est exécutée ;

. le programme reprend là où il a été interrompu grâce à l'instruction RETURN.




Les variables système @wparam% et @lparam% contiennent une valeur qui permettra d'identifier l'événement système qui a été déclenché. Si on désire utiliser les valeurs de @msg%, @wparam% et @lparam%, dans le traitement de l'interruption, il est préférable, soit de les mémoriser dans des variables utilisateur à la suite du gestionnaire ON SYS, soit en les transmettant comme paramètres à la procédure ou fonction personnalisée qui sera appelée par le gestionnaire, ON SYS, sinon elles pourraient être modifiées par d'autres actions du programme avant d'avoir pues être lues pour le traitement de l'interruption, avec la forme : ON SYS PROC_ErreurSys( @wparam% , @lparam% ) : RETURN



La variable système @msg% recevra la  valeur :

- &700, pour , pour  ; 

- &701, pour SDL_FINGERUP ; 

- &702, pour SDL_FINGERMOTION ; 

- &802, pour SDL_MULTIGESTURE ; 

- 78, pour WM_NOTIFY (pour la distribution BBC Basic for Windows) ;

- 83, pour WM_HELP (pour la distribution BBC Basic for Windows) ;

- 123, pour WM_CONTEXTMENU (pour la distribution BBC Basic for Windows) ;

- 273, pour WM_COMMAND (pour la distribution BBC Basic for Windows) ;

- 278, pour WM_INITMENU (pour la distribution BBC Basic for Windows) ;

- 279, pour WM_INITMENUPOPUP (pour la distribution BBC Basic for Windows) ;

- 287, pour WM_MENUSELECT (pour la distribution BBC Basic for Windows) ;

- 563, pour WM_DROPFILES (pour la distribution BBC Basic for Windows) ;

- 786, pour  la touche de controle Windows (pour la distribution BBC Basic for Windows) ;



Rappel : quand on fait appel à une variable système, il est conseillé de fait marque une légère pause au programme avec la fonction WAIT() , en général WAIT( 10 ), afin de s'assurer que les traitements en cours sont bien terminés et que les valeurs de ces variables ont bien été mise à jour.


Rappel : un gestionnaire événement, tel que ON SYS, interrompra le cours de l'application en cour, pour exécuter action, que si aucune instruction INPUT, GET, GET$, INKEY(), INKEY$(), SOUND ou WAIT n'a mis le programme en pause, sauf si vous avez chargé et utilisé les routines de la bibliothèque NOWAIT.


Note : soyez attentif à préserver le traitement des données internes lors d'un traitement d'événements par un gestionnaire, car cela pourrait provoquer des comportements inattendus dans le déroulement de l'application. Consulter le manuel du BBC BASIC for SDL 2.0 pour plus de détails sur les interruptions d'un script et leur gestions.


L'instruction composée ON SYS LOCAL, qui doit se trouver uniquement à l'intérieur de la définition d'une procédure ou fonction personnalisée, permet de suspendre et remplacer provisoirement la surveillance des événements système par le module principal s'il existe, qui redeviendra actif à la sortie de cette procédure ou fonction personnalisée.


L'instruction composée ON SYS OFF stoppe la surveillance des événement système. Toutefois, toutes les gestions en attentes dans la pile des événements seront traitées normalement. 


La forme ON SYS LOCAL OFF annulera le gestionnaire d"événements dans la procédure ou fonction personnalisée correspondante. Si un gestionnaire d'événements est actif dans le module principal, il redevient le gestionnaire par défaut.



Le controle sur les événements interceptés par les gestionnaire ON SYS et ON SYS LOCAL est fourni par la commande système *SYS. Voir la commande système *SYS pour plus de détails.


Voir le module eventlib.bbc qui propose des procédures pour une gestion avancée des événements.



Pour plus de détails sur les désagréments liées aux interruptions, veuillez consulter les mises en gardes du manuel officiel.




EXEMPLE.


REM --- Initialisation generale ---

ON MOVE PROC_ErreurSys( @wparam% , @lparam% ) : RETURN

MODE 8


REM --- Boucle principale ---

PRINT "Appuyer sur une touche pour quitter ... "

PRINT

REPEAT

kpause = INKEY( 10 )

UNTIL kpause <> -1

PRINT

PRINT "Fin du test. Au revoir."

END


REM --- Gestionnaire d'evenement : ON SYS ---

DEF PROC_ErreurSys( Qwparam% , Qlparam% )

PRINT "ERREUR SYSTEME !!!"

PRINT Qwparam%

PRINT Qwparam%

PRINT "Arret de l'applications."

END

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