⇨ MENU ⇨ BIBLIOTHEQUE ⇨ dlglib.bbc
PROC_closedialog()
⇨ MENU ⇨ BIBLIOTHEQUE ⇨ dlglib.bbc
PROC_closedialog()
DESCRIPTION.
La procédure PROC_closedialog() efface une boite de dialogue, et ses controles, sans détruire la détruire.
SYNTAXE.
PROC_closedialog( boite )
REMARQUES.
boite doit être l'identifiant de la boite de dialogue qui doit être affichée. Il s'agit du nom de la variable qui a reçu la valeur retournée par la fonction FN_newdialog() pour la création de boite.
La procédure PROC_closedialog() va faire disparaitre boite et ses controles de l'écran, sans la supprimer de la mémoire. Il sera donc toujours possible de rappeler boite ultérieurement sans avoir besoin de la recréer.
Si les controles restent mémorisées dans l'état où ils étaient au moment de la fermeture de la boite. Il faudra parfois les replacer manuellement, avec les procédures PROC_setcomboboxarray(), PROC_setdlgitemtext(), PROC_setlistboxarray() et PROC_setlistboxselect(), dans leur état par défaut avant la réouverture de boite.
Une boite de dialogue affichée doit également être effacée si le programme revient en mode d'exécution immédiate à la suite d'une instruction END, QUIT, RUN, CHAIN, CLEAR ou si une erreur interrompt le programme et le ferme. Il est donc important de créer des gestionnaires d'événements en début de script qui appellera la procédure en cas de défaillance, par exemple avec :
ON CLOSE PROC_closedialog( boite ) : QUIT
ON ERROR PROC_closedialog( boite ) : PRINT REPORT$ : END
Voir la fonction FN_newdialog() qui permet de déclarer et de créer une boite de dialogue.
Voir la procédure FN_showdialog() qui permet d'afficher une boite de dialogue sans modifier son style visuel.
Voir la procédure FN_showdialogex() qui permet d'afficher une boite de dialogue en modifiant son style visuel.
La fonction PROC_closedialog() est importée depuis le module dlglib.bbc.
EXEMPLE.
REM --- Importation des modules ---
REM --- Module de la bibliothèque BBC BASIC ---
INSTALL @lib$ + "dlglib.bbc"
REM --- Chargement de la police de caracteres par defaut ---
OSCLI "FONT """ + @lib$ + "DejaVuSans"",12"
REM --- Creation d'une boite de dialogue nommee DLG_Test de 160 x 60 unites intitulee Test ---
DLG_Test = FN_newdialog( "Test ..." , 160 , 60 )
REM --- Creation des controles de la boite de dialogue nommee DLG_Test ---
PROC_static( DLG_Test , "Ceci est un test" , 101 , 10 , 10 , 140 , 10 , 1 ) : REM - etiquette d'information
PROC_button( DLG_Test , "Au revoir." , 1 , 10 , 30 , 40 , 15 , 1 ) : REM - Bouton OK fermant la fenetre (identifiant = 1)
PROC_button( DLG_Test , "A bientot." , 8 , 60 , 30 , 40 , 15 , 1 ) : REM - Bouton CLOSE fermant la fenetre (identifiant = 8)
PROC_button( DLG_Test , "Bonjour." , FN_setproc( PROC_Action() ) , 110 , 30 , 40 , 15 , 1 ) : REM - Bouton invoquant une procedure
REM --- Affichage de la boite de dialogue et attende des choix de l'utilisateur ---
kcontrole = FN_showdialog( DLG_Test , &FFFFFFFF80000000 , &FFFFFFFF80000000 )
REM --- Gestion de la sortie de la boite de dialogue par activation d'un des boutons de fermeture ---
CASE kcontrole OF
WHEN 1 : PRINT "Au revoir le monde."
WHEN 8 : PRINT "A bientot le monde."
ENDCASE
REM --- Fermeture de la boite de dialogue ---
PROC_closedialog( DLG_Test )
REM --- Fin du programme ---
END
REM --- DEFINITION DES METHODES PERSONNALISEES ---
REM --- Procedures d'appel de la boite de dialogue DLG_Test ---
DEF PROC_Action( Qboite , Qbouton ) : PRINT "Bonjour le monde ..." : 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.