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

FN_setproc()

DESCRIPTION.


La fonction FN_setproc() permet d'associer l'exécution d'une procédure personnalisée quand l'utilisateur clique un controle.




SYNTAXE.


kvaleur = FN_setproc( PROC_Nom() )




REMARQUES.


PROC_Nom() doit être le nom d'une procédure 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 l'indentifiant de son controle seront transmis, automatiquement, comme paramètres. La définition de la procédure personnalisée doit doit donc, elle, prévoir de recevoir ces deux attributs : DEF PROC_Nom( Qboite , Qcontrole ).



La fonction FN_setproc() va retourner une valeur numérique, donnant l'emplacement mémoire où est stockée la définition de la procédure. Cette valeur doit être donnée comme identifiant du ou des controles qui appelleront cette procédure si l'utilisateur clique avec la souris sur lui, ou eux.


La valeur retournée par la fonction FN_setproc() peut être utilisée comme identifiant par plusieurs controle tant qu'ils ne sont pas inclus dans la même boite de dialogue. Cette valeur peur être : 

- incluse directement comme identifiant du controle : 

PROC_button ( b , t , FN_setproc ( PROC_Nom() ) , a , o , l , h , s ) ; 

- ou affectée dans une variable, qui sera utilsée comme identifiant du controle : 

kvaleur = FN_setproc ( PROC_Nom() )

PROC_button ( b , t , kvaleur , a , o , l , h , s ) ; 



Rappel : tous les controles d'une même boîte de dialogue doivent avoir un identifiant unique mais un identifiant peut être utilisé par plusieurs controles dans des boites de controle différentes.



Voir la fonction FN_newdialog() qui permet de déclarer et de créer une boite de dialogue. 

Voir la procédure PROC_registerdlgcallback() qui définit une fonction de rappel d'une boite de dialogue.



La procédure PROC_button() 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 , 35 )


REM --- Creation des controles de la boite de dialogue nommee DLG_Test ---

PROC_button( DLG_Test , "Valider." , 1 , 10 , 10 , 40 , 15 , 0 ) : REM - Bouton OK fermant la fenetre (identifiant = 1)

PROC_button( DLG_Test , "Fermer." , 8 , 60 , 10 , 40 , 15 , 0 ) : REM - Bouton CLOSE fermant la fenetre (identifiant = 8)

PROC_button( DLG_Test , "Message." , FN_setproc( PROC_Action() ) , 110 , 10 , 40 , 15 , 0 ) : 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 "Vous avez valide."

WHEN 8 : PRINT "Vous avez annule."

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