Page 1 sur 1

Barre de Menu

Publié : dim. 30/janv./2011 16:06
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

Re: Barre de Menu

Publié : dim. 30/janv./2011 16:29
par falsam
Hidemenu( #menu, 1 ) ou Hidemenu( #menu, #True) cache ton menu.

Re: Barre de Menu

Publié : dim. 30/janv./2011 16:48
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  

Re: Barre de Menu

Publié : dim. 30/janv./2011 19:45
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

Re: Barre de Menu

Publié : dim. 30/janv./2011 21:31
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  

Re: Barre de Menu

Publié : lun. 31/janv./2011 6:50
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