Barre de Menu

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
Cagou77
Messages : 18
Inscription : mer. 17/févr./2010 7:19
Localisation : Betheny, Reims

Barre de Menu

Message par Cagou77 »

Bonjour, j'aimerai savoir si une barre menu est affichée après l'utilisation de Hidemenu( #menu, 0 ) ou Hidemenu( #menu, 1 )
J'ai pas trouvé.
Merci d'avance
Avatar de l’utilisateur
falsam
Messages : 7324
Inscription : dim. 22/août/2010 15:24
Localisation : IDF (Yvelines)
Contact :

Re: Barre de Menu

Message par falsam »

Hidemenu( #menu, 1 ) ou Hidemenu( #menu, #True) cache ton menu.
Configuration : Windows 11 Famille 64-bit - PB 6.20 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Avatar de l’utilisateur
falsam
Messages : 7324
Inscription : dim. 22/août/2010 15:24
Localisation : IDF (Yvelines)
Contact :

Re: Barre de Menu

Message par falsam »

Un exemple ça peut servir

Code : Tout sélectionner

Enumeration
  #Mainform
  #Menu
  #BtnHideYesNo
EndEnumeration

If OpenWindow(#MainForm, 0, 0, 400, 300, "Hide Menu")
  If CreateMenu(#Menu, WindowID(#Mainform))
    MenuTitle("Fichier")
      MenuItem(1, "&Nouveau...")
      MenuItem(2, "Enregistrer")
      MenuItem(3, "Enregistrer sous...")
      MenuItem(4, "&Quitter")

    MenuTitle("Edition")
      MenuItem(5, "Couper")
      MenuItem(6, "Copier")
      MenuItem(7, "Coller")
      
    MenuTitle("?")
      MenuItem(8, "A propos")

  EndIf
  
  ButtonGadget(#BtnHideYesNo,150,100,80,24,"Cacher")
  
  Repeat
    Select WaitWindowEvent()
      Case #PB_Event_Menu
        Select EventMenu() 
          Case 4 : Quit=1          
        EndSelect
        
      Case #PB_Event_Gadget
        If EventGadget()=#BtnHideYesNo
          HideMenu(#Menu, #True)
        EndIf
                
      Case #PB_Event_CloseWindow
        Quit = 1

    EndSelect
  Until Quit = 1
EndIf
End  
Configuration : Windows 11 Famille 64-bit - PB 6.20 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Cagou77
Messages : 18
Inscription : mer. 17/févr./2010 7:19
Localisation : Betheny, Reims

Re: Barre de Menu

Message par Cagou77 »

Je me suis mal exprimé
je veux piloter un menu depuis un buttongadget
sur clic du button -> HideMenu( #Menu, 0 )
sur clic du button -> HideMenu( #Menu, 1 )

si le menu est effacé et que je clique sur le bouton
j'affiche le menu
si le menu est affiché et que je clique sur le bouton
j'efface le menu
et là je n'ai pas le moyen de savoir si le menu est affiché ou non
Avatar de l’utilisateur
Ar-S
Messages : 9540
Inscription : dim. 09/oct./2005 16:51
Contact :

Re: Barre de Menu

Message par Ar-S »

C'est presque pareil

Code : Tout sélectionner

Enumeration
  #Mainform
  #Menu
  #BtnHideYesNo
EndEnumeration

;2 termes pour t'y retrouver dans le code, mais l'important c'est 1 & 0
Global invisible.l=1
Global visible.l=0
; HideMenu(#Menu, invisible) équivaut à HideMenu(#Menu, 1)
; HideMenu(#Menu, visible) équivaut à HideMenu(#Menu, 0)

If OpenWindow(#Mainform, 0, 0, 400, 300, "Hide Menu")
  If CreateMenu(#Menu, WindowID(#Mainform))
    MenuTitle("Fichier")
    MenuItem(1, "&Nouveau...")
    MenuItem(2, "Enregistrer")
    etat=visible
  EndIf
  
  ButtonGadget(#BtnHideYesNo,150,100,80,24,"Cacher")
  
  Repeat
    Select WaitWindowEvent()
      Case #PB_Event_Menu
        Select EventMenu()
          Case 4 : Quit=1         
        EndSelect
        
        ; Notre bouton vérifie et change l'etat
      Case #PB_Event_Gadget
        If EventGadget()=#BtnHideYesNo
          Debug etat
          If etat=visible
            etat=invisible
            txt.s="Montrer"
          Else
            etat=visible
            txt.s="Cacher"
          EndIf
          ; Puis il affiche le nouvel état 
          HideMenu(#Menu, etat)
          SetGadgetText(#BtnHideYesNo,txt.s)
        EndIf
        
      Case #PB_Event_CloseWindow
        Quit = 1
        
    EndSelect
  Until Quit = 1
EndIf
End  
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
Cagou77
Messages : 18
Inscription : mer. 17/févr./2010 7:19
Localisation : Betheny, Reims

Re: Barre de Menu

Message par Cagou77 »

Merci pour l'aiguillage, voici le code final.

Code : Tout sélectionner

; ==================================================
; Code crée par : Grand Chris & un petit peu GeBonet
; Le : 30/01/2011 a 15:33:27
; ==================================================
Declare.l InversEtat( Opt.l )

Enumeration
  #Win_0
EndEnumeration

Enumeration
  #MenuBar_Form1_titre_FICHIER
  #MenuBar_Form1_Nouveau
  #MenuBar_Form1_Ouvrir
  #MenuBar_Form1_Sauver
  #MenuBar_Form1_Sortie
  #MenuBar_Form1_titreEDIT
  #MenuBar_Form1_Copier
  #MenuBar_Form1_Coller
  #MenuBar_Form1_Effacer
  #MenuBar_Form1_Chercher
  #MenuBar_Form1_titreAIDES
  #MenuBar_Form1_Aides
  #MenuBar_Form1_About
EndEnumeration

If OpenWindow(#Win_0, 80, 80, 500, 500, "Testhihi", #PB_Window_SystemMenu|#PB_Window_TitleBar|#PB_Window_BorderLess|#PB_Window_WindowCentered)
   Button_Menu = ButtonGadget(#PB_Any, 450, 450, 40, 20, "Menu" );, #PB_Button_Toggle)
EndIf

; ---- Menus ---------

MenuBar_Form1=CreateMenu(#PB_Any,WindowID(#Win_0))
MenuTitle("Fichier")
  MenuItem(#MenuBar_Form1_Nouveau,"Nouveau")
  MenuItem(#MenuBar_Form1_Ouvrir,"Ouvrir")
  MenuItem(#MenuBar_Form1_Sauver,"Sauver")
  MenuBar()
  MenuItem(#MenuBar_Form1_Sortie,"Sortie")
MenuTitle("Editer")
  MenuItem(#MenuBar_Form1_Copier,"Copier")
  MenuItem(#MenuBar_Form1_Coller,"Coller")
  MenuItem(#MenuBar_Form1_Effacer,"Effacer")
  MenuItem(#MenuBar_Form1_Chercher,"Chercher")
MenuTitle("Aides")
  MenuItem(#MenuBar_Form1_Aides,"Aides")
  MenuItem(#MenuBar_Form1_Coller,"A Propos")

; ---- Status barre -------------------
StatusBar_Form1=CreateStatusBar(#PB_Any,WindowID(#Win_0))

; ---- Boucle --------------------------

Etat = 1
HideMenu(MenuBar_Form1, Etat)

quitte=0
Repeat
  EventID     =WaitWindowEvent()
  MenuID      =EventMenu()
  GadgetID    =EventGadget()
  WindowID    =EventWindow()
  EventTypeID =EventType()

  Select EventID
    Case #PB_Event_CloseWindow
       If WindowID=Window_Form1
          quitte=1
       EndIf
    Case #PB_Event_Menu
     Select MenuID
        Case #MenuBar_Form1_Nouveau
        Case #MenuBar_Form1_Ouvrir
        Case #MenuBar_Form1_Sauver
        Case #MenuBar_Form1_Sortie
             quitte=1
        Case #MenuBar_Form1_Copier
        Case #MenuBar_Form1_Coller
        Case #MenuBar_Form1_Effacer
        Case #MenuBar_Form1_Chercher
        Case #MenuBar_Form1_Aides
        Case #MenuBar_Form1_About
     EndSelect

    Case #PB_Event_Gadget
      Select GadgetID
        Case Button_Menu
          Select EventTypeID
            Case #PB_EventType_LeftClick
              Etat = InversEtat( Etat)
              HideMenu( MenuBar_Form1, Etat )
              If Etat
                ResizeGadget(Button_Menu, #PB_Ignore, 450, #PB_Ignore, #PB_Ignore)
              Else
                ResizeGadget(Button_Menu, #PB_Ignore, 430, #PB_Ignore, #PB_Ignore)
              EndIf
          EndSelect    
      EndSelect

  EndSelect
Until quitte
End
;>>>>>>> =========== FIN ========== <<<<<<<

Procedure.l InversEtat( Opt.l )
  If Opt
    ProcedureReturn #False
  Else
    ProcedureReturn #True
  EndIf
 EndProcedure
  
Répondre