FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC

Développement d'applications avec le langage Panoramic
 
AccueilAccueil  FAQFAQ  RechercherRechercher  S'enregistrerS'enregistrer  MembresMembres  GroupesGroupes  Connexion  
Derniers sujets
» Pb 16 (en analyse): ON_CLOSE plante à l'exécution
par Jack Aujourd'hui à 20:00

» Pb 15 (en analyse): TIMER_ON plante à l'exécution
par Jack Aujourd'hui à 19:58

» Compilateur FBPano
par jean_debord Aujourd'hui à 8:49

» un nouveau editeur panobasic
par Jean Claude Hier à 20:05

» COMPILATEUR V 0.9 beta 7 du 10 aout 2017
par Pedro Alvarez Hier à 19:31

» KGF_dll - nouvelles versions
par Yannick Dim 13 Aoû 2017 - 17:35

» probleme d'outil
par Yannick Dim 13 Aoû 2017 - 17:32

» Carte de France des régions
par Yannick Sam 12 Aoû 2017 - 21:33

» Pb 14 (en analyse): PRINT_LOCATE plante à l'exécution
par Jack Ven 11 Aoû 2017 - 22:37

» Petit avertissement [Mots réservés]
par papydall Ven 11 Aoû 2017 - 13:45

» Distances sur plan
par JL35 Jeu 10 Aoû 2017 - 21:29

» Tracé : Triangle, Carrée, Dents de scie, Sinusoïde redressée
par papydall Jeu 10 Aoû 2017 - 14:52

» Troncature dans une image
par JL35 Mer 9 Aoû 2017 - 13:45

» A chacun son point de vue
par papydall Mar 8 Aoû 2017 - 17:20

» Problème avec les chaines de caractères
par bignono Dim 6 Aoû 2017 - 9:33

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Août 2017
LunMarMerJeuVenSamDim
 123456
78910111213
14151617181920
21222324252627
28293031   
CalendrierCalendrier

Partagez | 
 

 astuce MARK_ON/OFF pour 'sub_menu'

Voir le sujet précédent Voir le sujet suivant Aller en bas 
AuteurMessage
silverman

avatar

Nombre de messages : 464
Age : 45
Localisation : Picardie
Date d'inscription : 19/03/2015

MessageSujet: astuce MARK_ON/OFF pour 'sub_menu'   Lun 15 Mai 2017 - 18: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
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Jean Claude

avatar

Nombre de messages : 4988
Age : 63
Localisation : 83 Var
Date d'inscription : 07/05/2009

MessageSujet: Re: astuce MARK_ON/OFF pour 'sub_menu'   Lun 15 Mai 2017 - 22: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. cheers
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+
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Yannick

avatar

Nombre de messages : 7961
Age : 46
Localisation : Bretagne
Date d'inscription : 15/02/2010

MessageSujet: re   Lun 15 Mai 2017 - 22:21

Perso, j' utilise une variable d' état% qui est mise à 1 si le menu est coché.
Wink
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Contenu sponsorisé




MessageSujet: Re: astuce MARK_ON/OFF pour 'sub_menu'   

Revenir en haut Aller en bas
 
astuce MARK_ON/OFF pour 'sub_menu'
Voir le sujet précédent Voir le sujet suivant Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» [Astuce] Eplucher un oignon sans pleurer
» Astuce barre de navigation en haut pour forum en invision
» Astuce Modifier le "Qui est en ligne" pour les forums en Invision
» Astuce pour avoir un lien vers le panneau d'administration (Phpbb3)
» Astuce de la semaine: un selecteur de thème pour vos membres

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC :: PANORAMIC 32 bits :: Vos sources, vos utilitaires à partager-
Sauter vers: