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

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