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 TIME

DESCRIPTION.


Le gestionnaire ON TIME permet d'exécuter une action à intervalle régulier.

L'instruction ON TIME OFF annule l'appel régulier de l'action exécutée par  ON TIME.


Le gestionnaire ON TIME LOCAL exécute une action à intervalle régulier tant que l'on se trouve dans un bloc d'instructions.

L'instruction ON TIME LOCAL OFF annule l'appel régulier de l'action exécutée par  ON TIME LOCAL.




SYNTAXE.


ON TIME action : RETURN

ON TIME OFF


ON TIME LOCAL action : RETURN

ON TIME 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 TIME, ou minuteur, permet d'appeler une action, par exemple une procédure ou fonction personnalisée, en arrière-plan et à intervalle régulier, sans devoir y faire un appel direct à plusieurs endroit du script. 


Une fois un minuteur activé, le controle du programme lui sera donnée environ 4 fois par seconde. Quand ON TIME obtient la priorité sur le programme :

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



Rappel : un gestionnaire événement, tel que ON TIME, 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 TIME 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 le minuteur du module principal s'il existe, qui redeviendra actif à la sortie de cette procédure ou fonction personnalisée.


L'instruction composée ON TIME OFF stoppe l'exécution du minuteur. Toutefois, toutes les actions en attentes dans la pile des événements seront traitées normalement. 


La forme ON SYS TIME OFF stoppe l'exécution le minuteur dans la procédure ou fonction personnalisée correspondante. Si un minuteur est actif dans le module principal, il redevient le gestionnaire par défaut.



La commande système *TIMER permet de modifier la périodicité du minuteur, en millisecondes.


Les routines de la bibliothèque TIMERLIB, permettent de programmer plusieurs minuteurs dans un même script, et/ou de définir une plus grande précision dans la durée des intervalles.



Voir les instructions TIME et TIME$ pour la gestion de la date et de l'heure.

Voir la commande système *TIMER pour modifier la durée du minuteur.

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

Voir le module timerlib.bbc propose des procédure pour améliorer la gestion des minuteurs en grande vitesse.



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




EXEMPLE.


MODE 8

ON TIME PROC_Minuteur : RETURN


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

PRINT

kcompteur = 0

REPEAT

kcompteur += 1

PRINT TAB(  40 , 16 ) STR$( kcompteur )

kpause = INKEY( 7 )

UNTIL kpause <> -1

CLS

PRINT

PRINT "Fin du test. Au revoir."

END


DEF PROC_Minuteur

GCOL RND( 14 ) + 1 

CIRCLE FILL RND( 1280 ) , RND( 1023 ) , RND( 15 ) + 5

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