silverman
Nombre de messages : 970 Age : 52 Localisation : Picardie Date d'inscription : 18/03/2015
| Sujet: astuce MARK_ON/OFF pour 'sub_menu' Lun 15 Mai 2017 - 17:59 | |
| Bonjour à tous, le pb consiste à retrouver si un 'sub_menu' a été 'MARK_ON/OFF' ou pas. Puisque 'checked' ne fonctionne pas avec les 'sub_menu', et comme il n'existe pas de fonction 'marked(N)', voici un exemple qui montre comment contourner ce pb; 3 méthodes différentes, 1 par menu pour illustrer les possibilités: - Code:
-
label clicA , clicB , clicC dim mnu , mnu_clicked
main_menu 1
' menuA sub_menu 2 : parent 2,1 : caption 2,"menuA" sub_menu 3 : parent 3,2 : caption 3,"test1A" sub_menu 4 : parent 4,2 : caption 4,"test2A" sub_menu 5 : parent 5,2 : caption 5,"test3A" sub_menu 6 : parent 6,2 : caption 6,"test4A"
' clic sur menuA for mnu=3 to 6 on_click mnu,clicA next mnu mark_sub_menu(6) :' un sous menu marqué par défaut
' menuB sub_menu 12 : parent 12,1 : caption 12,"menuB" sub_menu 13 : parent 13,12 : caption 13,"test1B" sub_menu 14 : parent 14,12 : caption 14,"test2B" sub_menu 15 : parent 15,12 : caption 15,"test3B" sub_menu 16 : parent 16,12 : caption 16,"test4B"
' clic sur menuB for mnu=13 to 16 on_click mnu,clicB next mnu mark_sub_menu(16) :' un sous menu marqué par défaut
' menuC sub_menu 22 : parent 22,1 : caption 22,"menuC" sub_menu 23 : parent 23,22 : caption 23,"test2C" sub_menu 24 : parent 24,22 : caption 24,"test2C" sub_menu 25 : parent 25,22 : caption 25,"test3C" sub_menu 26 : parent 26,22 : caption 26,"test4C"
' clic sur menuC for mnu=23 to 26 on_click mnu,clicC next mnu
END clicA: ' marquer des sous menus : façon CHECK mark_sub_menu(number_click) mnu_clicked=number_click caption 0,str$(mnu_clicked) return
clicB: ' marquer des sous menus : façon OPTION for mnu=13 to 16 if clicked(mnu)=1 mark_on mnu mnu_clicked=mnu else mark_off mnu end_if next mnu caption 0,str$(mnu_clicked) return
clicC: ' marquer des sous menus : façon OPTION + CHECK (1 seul à la fois ou aucun sous menu marqué) for mnu=23 to 26 if clicked(mnu)=1 mark_sub_menu(mnu) mnu_clicked=mnu else mark_off mnu marked(mnu)=0 end_if next mnu caption 0,str$(mnu_clicked) return
' sub sub mark_sub_menu(N) if variable("marked")=0 then dim marked(10000) select marked(N) case 0 : marked(N)=1 : mark_on N case 1 : marked(N)=0 : mark_off N end_select end_sub | |
|
Jean Claude
Nombre de messages : 5950 Age : 70 Localisation : 83 Var Date d'inscription : 07/05/2009
| Sujet: Re: astuce MARK_ON/OFF pour 'sub_menu' Lun 15 Mai 2017 - 21:00 | |
| Merci Silverman pour ce partage. Au début je ne voyais pas où tu voulais en venir. Mais les commentaires du code m'ont aidés à comprendre. Ex: pour le menu A ' marquer des sous menus : façon CHECK. cette option nous permet de cocher plusieurs menus (sans effacer "la coche" des autres options du menu). Très astucieux. A+ | |
|
Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Lun 15 Mai 2017 - 21:21 | |
| Perso, j' utilise une variable d' état% qui est mise à 1 si le menu est coché. | |
|
Contenu sponsorisé
| Sujet: Re: astuce MARK_ON/OFF pour 'sub_menu' | |
| |
|