Page 1 sur 1

popup menu ....

Publié : dim. 21/août/2005 9:05
par scaraber
salut voila j'ai faitun popup menu mais quand je clique sur un bouton sa fait une autre action enfin tt le biuton font la meme chose voici mon code

Code : Tout sélectionner

    
       Select WaitWindowEvent()
        
            Case #WM_RButtonDown
            DisplayPopupMenu(0, WindowID())
    
       Select EventMenuID() 
          
          Case #a1 ; Cacher
          state=state+1
          If state=2
            state=0
           EndIf
           
            If state=0
             CloseWindow (0)
           EndIf
            OpenWindow(0,WindowX(),WindowY(),200,140,#PB_Window_SystemMenu|#PB_Window_MinimizeGadget ,"heure"); Fenster mit Rahmen öffnen 
            HideWindow(0,state)
          
        
          Case #a2 

  b=b+2
                EndIf 
                

          Case #a4 
            RunProgram ("config.exe",Parametre$, "", 1)
            
            
          Case #a5 
           a=a+1

          Case #a6
            End

         Default 
        EndSelect
      EndSelect

Publié : dim. 21/août/2005 9:36
par fweil
scaraber,

Je crois que tu as envoyé un code en désordre !

Tel quel rien ne peut fonctionner.

Voici un squelette de programme qui fonctionne :

Code : Tout sélectionner

Enumeration
  #Window_Main
  #Menu
  #Menu_a1
  #Menu_a2
  #Menu_a3
  #Menu_a4
  #Menu_a5
  #Menu_a6
EndEnumeration

  WindowWidth = 640
  WindowHeight = 480
  If OpenWindow(#Window_Main, 0, 0, WindowWidth, WindowHeight, #PB_Window_SystemMenu | #PB_Window_MinimizeGadget | #PB_Window_MaximizeGadget | #PB_Window_SizeGadget | #PB_Window_TitleBar | #PB_Window_ScreenCentered, "MyWindow")
      AddKeyboardShortcut(#Window_Main, #PB_Shortcut_Escape, #PB_Shortcut_Escape)
      If CreatePopupMenu(#Menu)
          MenuTitle("Menu")
            MenuItem(#Menu_a1, "a1")
            MenuItem(#Menu_a2, "a2")
            MenuItem(#Menu_a3, "a3")
            MenuItem(#Menu_a4, "a4")
            MenuItem(#Menu_a5, "a5")
            MenuItem(#Menu_a6, "a6")
      EndIf
      If CreateGadgetList(WindowID(#Window_Main))
      EndIf
      Quit = #False
      Repeat
        Select WaitWindowEvent()
          Case #PB_Event_CloseWindow
            Quit = #True
          Case #WM_RBUTTONDOWN
            DisplayPopupMenu(#Menu, WindowID(#Window_Main))
          Case #PB_Event_Menu
            Select EventMenuID()
              Case #PB_Shortcut_Escape
                Quit = #True
              Case #Menu_a1
                Debug "a1"
              Case #Menu_a2
                Debug "a2"
              Case #Menu_a3
                Debug "a3"
              Case #Menu_a4
                Debug "a4"
              Case #Menu_a5
                Debug "a5"
              Case #Menu_a6
                Debug "a6"
              Default
            EndSelect
        EndSelect
      Until Quit
  EndIf
End

Publié : dim. 21/août/2005 10:32
par scaraber
le code marche bine mais impossible de le faire marcher dasn mon code pourtant sa a lair bon

Code : Tout sélectionner

       If CreatePopupMenu(#Menu) 
            MenuItem(#Menu_a1, "déplacer/figer") 
            MenuItem(#Menu_a2, "cacher/afficher") 
            MenuItem(#Menu_a3, "optimiser ram") 
            MenuItem(#Menu_a4, "configurateur") 
            MenuItem(#Menu_a5, "aide") 
            MenuItem(#Menu_a6, "quiter") 
      EndIf 

Code : Tout sélectionner

        Select WaitWindowEvent() 
          Case #WM_RBUTTONDOWN 
             DisplayPopupMenu(#Menu, WindowID(0))  
            Select EventMenuID() 
              Case #Menu_a1 
              Fenster_an_aus+1   
              If Fenster_an_aus=1 ; fenetre deplacable  
                OpenWindow(0,WindowX(),WindowY(),200,140,#PB_Window_SystemMenu|#PB_Window_MinimizeGadget ,"heure"); Fenster mit Rahmen öffnen * 
                heure () 
              EndIf  
              If Fenster_an_aus=2 ; fenetre figer
                OpenWindow(0,WindowX(),WindowY(),200,140, #WS_POPUP,"heure") ; Fenster ohne alles öffnen * 
                Fenster_an_aus=0 
                heure ()
              EndIf 
              
              Case #Menu_a2 
              state=state+1
              If state=2
                state=0
              EndIf
              If state=0
                CloseWindow (0)
              EndIf
              OpenWindow(0,WindowX(),WindowY(),200,140,#PB_Window_SystemMenu|#PB_Window_MinimizeGadget ,"heure"); Fenster mit Rahmen öffnen 
              HideWindow(0,state)
          
              Case #Menu_a3 
              CreateThread(@Optimisation(), Total) 
              
              Case #Menu_a4 
              RunProgram ("config.exe")
              
              Case #Menu_a5 
              RunProgram("aide.exe")
     
              Case #Menu_a6 
               End
              Default 
            EndSelect 
          EndSelect 

Publié : dim. 21/août/2005 10:57
par fweil
Dans ta boucle évènementielle, il manque un Case #PB_Event_Menu avant le Select EventMenuID().

Publié : dim. 21/août/2005 12:44
par scaraber
j'ai trouver le probleme :wink: :le code susivant je c pas pourquoi mais quand je le met meme si je clique sur le bouton 2 c l'action du 1 qui sexecute :( je ne comprend pas svp de l'aide :!: :!:

Code : Tout sélectionner

Case #Menu_a1 
              Debug 1
              Fenster_an_aus+1   
              If Fenster_an_aus=1 ; fenetre deplacable  
                OpenWindow(0,WindowX(),WindowY(),200,140,#PB_Window_SystemMenu|#PB_Window_MinimizeGadget ,"heure"); Fenster mit Rahmen öffnen * 
                heure () 
              EndIf  
              If Fenster_an_aus=2 ; fenetre figer
                OpenWindow(0,WindowX(),WindowY(),200,140, #WS_POPUP,"heure") ; Fenster ohne alles öffnen * 
                Fenster_an_aus=0 
                heure ()
              EndIf 

Publié : dim. 21/août/2005 15:53
par scaraber
salut
encore moi
bon j'ai enfin identifier avec certitude le niveau ou est le proleme
j'ai mi un systray et j'ai config le code pour que quand je clique dessu sa ouvre le menu le probleme c que quand jarive sur l'icone
EventMenuID() passe a 1 au lieu de rester a zero et attendre que jai choisi le bouton pour changer voici mon code je pence quil manque une phase de reconaissanec du menu selectioner

Code : Tout sélectionner

  If WindowEvent = #PB_Event_SysTray
         If EventType() = #PB_EventType_RightClick  
           DisplayPopupMenu(#Menu, WindowID()) 
           If EventMenuID()=1
             Debug 1
             Fenster+1   
             If Fenster=1 ; fenetre deplacable  
               OpenWindow(0,WindowX(),WindowY(),200,140,#PB_Window_SystemMenu|#PB_Window_MinimizeGadget ,"heure"); Fenster mit Rahmen öffnen * 
               heure()
             EndIf  
             If Fenster=2 ; fenetre figer
               OpenWindow(0,WindowX(),WindowY(),200,140, #WS_POPUP,"heure") ; Fenster ohne alles öffnen * 
               Fenster=0 
               heure()
             EndIf
           EndIf
           
           If EventMenuID()=2
               Debug 2
               state=state+1
               If state=2
                 state=0
                EndIf
                If state=0
                  CloseWindow (0)
                EndIf
                OpenWindow(0,WindowX(),WindowY(),200,140,#PB_Window_SystemMenu|#PB_Window_MinimizeGadget ,"heure"); Fenster mit Rahmen öffnen 
                HideWindow(0,state)
           EndIf
           
           If EventMenuID()=3
           Debug 3
             CreateThread(@Optimisation(), Total) 
           EndIf
           
           If EventMenuID()=4
             RunProgram ("config.exe")
           EndIf
           
           If EventMenuID()=5
             RunProgram ("aide.exe")
           EndIf
           
           If EventMenuID()=6
             End
           EndIf
                     MessageRequester("Info", "MenuItem: "+Str(EventMenuID()), 0)
         EndIf 
       EndIf