ON CLOSE
DESCRIPTION.
Le gestionnaire ON CLOSE est utilisé pour empêcher la fermeture de la fenêtre de sortie par l'utilisateur.
L'instruction ON CLOSE OFF est utilisée pour annuler la surveillance de la fermeture de la fenêtre de sortir.
Le gestionnaire ON CLOSE LOCAL est utilisé pour empêcher la fermeture tant un bloc d'instructions est en cours d'exécution.
L'instruction ON CLOSE LOCAL OFF est utilisée pour annuler la surveillance de la fermeture de la fenêtre de sortir.
SYNTAXE.
ON CLOSE action : RETURN
ON CLOSE OFF
ON CLOSE LOCAL action : RETURN
ON CLOSE 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 CLOSE active la surveillance de fermeture de la fenêtre de sortie par l'utilisateur. Si l'utilisateur clique sur l'icone de fermeture de la fenêtre de sortie, une croix, dans un des angles supérieurs :
- 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.
Par défaut, l'utilisateur peut cliquer sur l'icone de sortie de la fenêtre de sortie pour quitter le programme en cour. Mais cette possibilité peut être annulée par une instruction composée ON CLOSE, qui dirigera l'exécution du programme vers une procédure ou fonction personnalisée, par exemple, pour s'assurer que certaines données seront bien enregistrées sur un support non volatile, pour que l'utilisateur confirme sa volonté de quitter le programme ou pour lui permettre de mettre le programme en pause.
Dès qu'un gestionnaire ON CLOSE est activé, la fenêtre de sortie ne pourra être fermée qu'avec une instruction QUIT. ou une des commandes système *QUIT ou *BYE.
L'instruction composée ON CLOSE 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 de la fermeture de la fenêtre de sortie par le module principal s'il existe, qui redeviendra actif à la sortie de cette procédure ou fonction personnalisée.
Rappel : un gestionnaire événement, tel que ON CLOSE, 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 CLOSE OFF stoppe la surveillance de la fermeture de la fenêtre de sortie. Toutefois, toutes les gestions en attentes dans la pile des événements seront traitées normalement.
La forme ON CLOSE 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.
Voir l'instruction MODE pour connaitre les différentes caractéristiques possibles des fenêtres de sortie.
Voir le gestionnaire ON MOVE pour gérer les modifications de caractéristiques de la fenêtre de sortie.
Pour plus de détails sur les désagréments liées aux interruptions, veuillez consulter les mises en gardes du manuel officiel.
RUBRIQUES.
Les dessins et les graphismes pour plus de détails sur la création de dessins et de graphismes.
EXEMPLE.
ON CLOSE PROC_Pause : RETURN
PRINT "Appuyez sur Q pour quitter."
kduree = 0
REPEAT
kduree += .1 PRINT TAB( 0 , 5 ) "Temps ecoule : " ; STR$( kduree ) ; " seconde (s)."
ktouche$ = INKEY$( 10 )
UNTIL ktouche$ = "N" OR ktouche$ = "q"
QUIT
END
DEF PROC_Pause
PRINT TAB( 0 , 5 ) "Execution en pause. Appuyez sur une touche pour reprendre ..."
kpause = GET
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.