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

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