⇨ MENU ⇨ BIBLIOTHEQUE ⇨ dlglib.bbc
PROC_registerdlgcallback()
⇨ MENU ⇨ BIBLIOTHEQUE ⇨ dlglib.bbc
PROC_registerdlgcallback()
DESCRIPTION.
La procédure PROC_registerdlgcallback() permet de désigner une fonction qui sera exécutée régulièrement tant que la boite de dialogue sera affichée.
SYNTAXE.
PROC_registerdlgcallback( boite , FN_Nom() )
REMARQUES.
boite doit être l'identifiant de la boite de dialogue qui à laquelle la fonction de rappelle est associé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.
FN_Nom() doit être le nom d'une fonction personnalisée. La paire de parenthèses est obligatoire et doit être vide ; il ne doit pas y avoir de référence à des paramètres dans celle-ci. Lors du déclenchement de l'appel de la procédure personnélisée associée, l'identifiant de la boite de dialogue et le code ASCII de la touche enfoncée, ou -1 s'il n'y a pas au d'action sur le clavier, seront envoyés, automatiquement, comme paramètres. La définition de la fonction personnalisée doit doit donc, elle, prévoir de recevoir ces deux attributs : DEF FN_Nom( Qboite , Qtouche ).
La procédure PROC_registerdlgcallback() permet d'associer une fonction de surveillance à une boite de dialogue. Cette fonction sera invoquée a intervalles régulier et chaque fois qu'une touche du clavier sera perçues durant toute la durée d'affichage de boite, pour, par exemple mettre à jour le contenu des ses controles.
Si la fonction de rappel FN_Nom() retourne une valeur comprise entre 1 et 9, boite se fermera, et la fonction qui a affichée boite : FN_showdialog(), FN_showdialogex() ou FN_polldialog() retournera elle aussi cette même valeur.
IMPORTANT : la procédure PROC_closedialog() ne doit jamais se trouver dans une fonction de rappelle d'une boite de dialogue.
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 procédure PROC_registerdlgcallback() 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 ..." , 120 , 60 )
PROC_registerdlgcallback( DLG_Test, FN_Event() )
REM --- Creation des controles de la boite de dialogue ---
PROC_button( DLG_Test , "Fermer." , 8 , 40 , 35 , 40 , 15 , 0 )
PROC_static( DLG_Test , "Appuyez sur une touche ... " , 101 , 10 , 10 , 100 , 15 , 1 )
REM --- Affichage de la boite de dialogue et attende des choix de l'utilisateur ---
kcontrole = FN_showdialog( DLG_Test , &FFFFFFFF80000000 , &FFFFFFFF80000000 )
REM --- Fermeture de la boite de dialogue ---
PROC_closedialog( DLG_Test )
REM --- Fin du programme ---
PRINT : PRINT "Au revoir."
END
REM --- DEFINITION DES METHODES PERSONNALISEES ---
REM --- Fonction de rappel de la boite de dialogue DLG_Test ---
DEF FN_Event( Qboite , Qtouche )
IF Qaction < 1 THEN = 0
PRINT TAB( 0 , 1 ) "boite de dialogue : " ; Qboite
PRINT TAB( 0 , 2 ) "Code de la touche : " ; Qtouche ; " "
PRINT TAB( 0 , 3 ) "Symbole de la touche : " ; CHR$( Qtouche ) ; " "
= 0
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.