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_showdialogex()

DESCRIPTION.


La fonction FN_showdialogex() affiche une boite de dialogue, et ses controles, en précisant un style visuel.



SYNTAXE.


kvaleur = FN_showdialogex( boite , abscisse , ordonnee , style )




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.


abscisse doit être des nombre entier, exprimé en unités graphique du BBC BASIC, indiquant l'abscisse du bord gauche boite par rapport au bord gauche de la fenêtre de sortie du BBC BASIC. Si abscisse vaut &FFFFFFFF80000000 (18446744071562068000 en décimal) la boite de dialogue sera centrée sur l'axe abscisses.


ordonnee doit être des nombre entier, exprimé en unités graphique du BBC BASIC, indiquant l'ordonnée du bord haut boite par rapport au bord bas de la fenêtre de sortie du BBC BASIC. Si ordonnee vaut &FFFFFFFF80000000 (18446744071562068000 en décimal) la boite de dialogue sera centrée sur l'axe ordonnées.


sytle indique dans quel style visuelle la boite de dialogue est ses controles doivent est affichées. style peut valooir : 

- FALSE, pour présenter la boite de dialogue dans le style visuel clair ou :

- TRUE, pour présenter la boite de dialogue dans le style visuel sombre.



La fonction FN_showdialogex() va afficher la boite de dialogue boite et son contenu et attendre que l'utilisateur clique sur l'un de ses controles avec la souris et si l'identifiant du controle est une valeur : 

- retournée par une fonction FN_setproc(), la procédure correspondante sera exécutée ;

- comprise entre 1 et 11, elle retournera cette valeur et suspendra sa surveillance des événements ;

- d'une case à option ou une case à choix, elle (dé)cochera cette case ;

- d'une liste fixe, elle (dé)sélectionnera cet élément ;

- d'une liste déroulante, elle placera cet élément comme sélectionné ;

- d'une échelle de valeur, elle déplacera le curseur tant que le bouton de la souris restera cliqué ;

- autre, elle ne doit, normalement rien faire ;


Si une fonction de surveillance a été définie avec la procédure PROC_registerdlgcallback() pour une boite de dialogue, tant que cette boite de dialogue est affichée, la fonction de surveillance sera exécutée soit régulièrement ou chaque fois que l'utilisateur cliquera sur une touche du clavier.


L'appel de la fonction FN_showdialogex() est bloquant, c'est-à-dire que tant qu'elle n"a pas retournée la valeur de l'un de ses identifiants, ou qu'elle n'est pas effacée par une procédure PROC_closedialog() l'exécution du programme est suspendu.


Bien que cela ne soit pas obligatoire, il est vivement recommandé de placer, soit un bloc d'instructions selon que (CASE ... OF), soit un ensemble de tests (IF ... THEN ... ELSE IF ... ELSE) à la suite de la fonction FN_showdialogex(), et si possible avant l'appel de la procédure PROC_closedialog(), pour réagir immédiatement et convenablement au bouton cliquable choisi ( OK, Valider, Annuler, Fermer, ...) pour la sortie de la boite de dialogue.


Même si une fonction FN_showdialogex() a retournée une valeur, et n'est donc plus active et en attente d'événement, la boite de dialogue reste affichée tant que la procédure PROC_closedialog() n'a pas été appelé pour cette 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_polldialog() qui afficher les controles d'une boite de dialogue dans la fenêtre de sortie.



La fonction FN_showdialog() 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 ..." , 60 , 60 )


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

PROC_static( DLG_Test , "Bonjour" , 101 , 10 , 10 , 40 , 10 , 1 ) 

PROC_button( DLG_Test , "Fermer." , 8 , 10 , 30 , 40 , 15 , 1 )



REM --- Affichage et fermeture de la boite dans le style par défaut ---

kcontrole = FN_showdialog( DLG_Test , &FFFFFFFF80000000 , &FFFFFFFF80000000 )  

PROC_closedialog( DLG_Test ) 


REM --- Boucle de pause ---

FOR kpause = 3 TO 0 STEP -1

PRINT "Dans " , kpause 

WAIT( 25 )

NEXT kpause



REM --- Affichage et fermeture de la boite dans le style clair ---

kcontrole = FN_showdialogex( DLG_Test , &FFFFFFFF80000000 , &FFFFFFFF80000000 , FALSE )  

PROC_closedialog( DLG_Test ) 


REM --- Boucle de pause ---

FOR kpause = 3 TO 0 STEP -1

PRINT "Dans " , kpause 

WAIT( 25 )

NEXT kpause


REM --- Affichage et fermeture de la boite dans le style sombre ---

kcontrole = FN_showdialogex( DLG_Test , &FFFFFFFF80000000 , &FFFFFFFF80000000 , TRUE )  

PROC_closedialog( DLG_Test ) 


REM --- Fin du programme ---

END

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