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 ⇨ menulib.bbc

PROC_addmenu()

DESCRIPTION.


La procédure PROC_addmenu() ajoute un menu déroulant à la barre de menu.




SYNTAXE.


PROC_addmenu( menu , intitules , identifiants )




REMARQUES.


menu doit être l'identifiant de la variable qui à reçu la valeur retourné par la fonction FN_createmenubar.


intitules doit être identifiant d'un tableau de données de type chaine de caractères ($) déclaré avec l'instruction DIM. L'élément à l'index 0, est les nom du menu déroulant, c'est cette chaine de caractères qui sera affichée dans la barre de menu. Cet élément doit, généralement, être précédé et suivi un espace. Les autres éléments sont les noms des options contenues dans le menu déroulant, ou une chaîne vide ("") pour placer un séparateur entre deux option. Pour spécifier le caractère associé à la touche Alt permettant d'ouvrir le menu, faites-le précéder d'une esperluette (&). Pour indiquer quel raccourci clavier correspond à l'option, il faudra ajouter CHR$9 pour ajouter la combinaison de touches.


identifiants doit être identifiant d'un tableau de données de type nombre entier (%) déclaré avec l'instruction DIM. L'élément à l'index 0, indique le nombre d'options du menu déroulant. Les autres éléments doivent être des nombres entiers compris entre 1 et 4095, la valeur 0 étant réservé aux séparateurs, identifié dans intitules par des chaines de caractères vides ("").


Pour désactive une option, et la faire apparaitre en grisée, il faut ajouter 4096 (&1000) à son identifiant.


Pour afficher une coche d'activation à une option, il faut ajouter 8192 (&2000) à son identifiant.


intitules et identifiants doivent avoir le même nombre d'éléments et être déclarés avant l'appel de la procédure PROC_addmenu().


Les menus déroulants sont placés dans la barre de menu, de gauche à droite et dans l'ordre de leur où ils ont été ajouté par les appels successifs de la procédure PROC_addmenu().



Note : une barre de menu peut contenir jusqu'à 20 menu déroulants.



La procédure PROC_addmenu() est importée depuis le module menulib.bbc. 




EXEMPLES.


1. Sans procédure de rappel.


REM --- Importation des modules ---

REM --- Module de la bibliothèque BBC BASIC ---

INSTALL @lib$ + "menulib.bbc"


REM --- INITIALISATION GENERALE ---

MNU_Menu = FN_createmenubar


REM --- Préparation des menus déroulants ---

DIM MNU_Fichier$( 5 ) , MNU_Fichier%( 5 )

MNU_Fichier$() = "  &Fichier  " ,  "&Nouveau" + CHR$9 + "Ctrl+N" , "&Ouvrir" , "&Enregistrer" + CHR$9 + "Ctrl+S" , "" , "&Quitter"

MNU_Fichier%() = 5 , 101 , 102 , ( 4096 + 103 ) , 0 , 104

PROC_addmenu( MNU_Menu , MNU_Fichier$() , MNU_Fichier%() )


DIM MNU_Edition$( 4 ) , MNU_Edition%( 4 )

MNU_Edition$() = "  &Edition  " ,  "Couper" + CHR$9 + "Ctrl+X" , "Copier" + CHR$9 + "Ctrl+C" , "Coller" + CHR$9 + "Ctrl+V"

MNU_Edition%() = 3 , 201 , 202 , ( 4096 + 203 ) 

PROC_addmenu( MNU_Menu , MNU_Edition$() , MNU_Edition%() )


DIM MNU_Aide$( 3 ) , MNU_Aide%( 3 )

MNU_Aide$() = "  &Aide  " , "Manuel" , "A propos de ..."

MNU_Aide%() = 2 , 301 , 302 

PROC_addmenu( MNU_Menu , MNU_Aide$() , MNU_Aide%() )


REM --- Afficher la barre menu ---

PROC_setmenupalette( FALSE )

PROC_drawmenubar( MNU_Menu )



REM --- BOUCLE PRINCIPALE ---

REPEAT 

koption = FN_pollmenu( MNU_Menu , 0 )

VDU 4

PRINT TAB( 0 , 10 ) ; 

CASE koption OF

WHEN 101 : PRINT "FICHIER - Nouveau" ; SPC( 10 )

WHEN 102 : PRINT "FICHIER - Ouvrir" ; SPC( 10 )

WHEN 103 : PRINT "FICHIER - Sauvegarder" ; SPC( 10 )

WHEN 104 : PRINT "FICHIER - Quitter" ; SPC( 10 )

WHEN 201 : PRINT "EDITION - Couper" ; SPC( 10 )

WHEN 202 : PRINT "EDITION - Copier" ; SPC( 10 )

WHEN 203 : PRINT "EDITION - Coller" ; SPC( 10 )

WHEN 301 : PRINT "AIDE - Manuel" ; SPC( 10 )

WHEN 302 : PRINT "AIDE - A propos de" ; SPC( 10 )

ENDCASE

WAIT( 10 )

UNTIL koption = 104



REM --- Fin du programme ---

PRINT "Fin  du test."

PRINT "Au revoir."

END




2. Avec une procédure de rappel.


REM --- Importation des modules ---

REM --- Module de la bibliothèque BBC BASIC ---

INSTALL @lib$ + "menulib.bbc"


REM --- INITIALISATION GENERALE ---

MNU_Menu = FN_createmenubar


REM --- Préparation des menus déroulants ---

DIM MNU_Fichier$( 5 ) , MNU_Fichier%( 5 )

MNU_Fichier$() = "  &Fichier  " ,  "&Nouveau" + CHR$9 + "Ctrl+N" , "&Ouvrir" , "&Enregistrer" + CHR$9 + "Ctrl+S" , "" , "&Quitter"

MNU_Fichier%() = 5 , 101 , 102 , ( 4096 + 103 ) , 0 , 104

PROC_addmenu( MNU_Menu , MNU_Fichier$() , MNU_Fichier%() )


DIM MNU_Edition$( 4 ) , MNU_Edition%( 4 )

MNU_Edition$() = "  &Edition  " ,  "Couper" + CHR$9 + "Ctrl+X" , "Copier" + CHR$9 + "Ctrl+C" , "Coller" + CHR$9 + "Ctrl+V"

MNU_Edition%() = 3 , 201 , 202 , ( 4096 + 203 ) 

PROC_addmenu( MNU_Menu , MNU_Edition$() , MNU_Edition%() )


DIM MNU_Aide$( 3 ) , MNU_Aide%( 3 )

MNU_Aide$() = "  &Aide  " , "Manuel" , "A propos de ..."

MNU_Aide%() = 2 , 301 , 302 

PROC_addmenu( MNU_Menu , MNU_Aide$() , MNU_Aide%() )


REM --- Afficher la barre menu ---

PROC_setmenupalette( FALSE )

PROC_drawmenubar( MNU_Menu )


REM --- BOUCLE PRINCIPALE ---

REPEAT 

koption = FN_pollmenu( MNU_Menu , PROC_Menu( ) )

WAIT( 10 )

UNTIL koption = 104



REM --- Fin du programme ---

PRINT "Fin  du test."

PRINT "Au revoir."

END



REM --- Définition de la procédure de rappel ---

DEF PROC_Menu( Q% )

VDU 4

PRINT TAB( 0 , 10 )  Q%

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