Page 1 sur 1

Menu popup...

Publié : jeu. 14/oct./2010 14:20
par dayvid
Salut !

Non je sais faire des menue popup rassurez vous :lol:
non en faite je suis ennuyer car je n'est pas réussie
a faire un menue popup pour chacun de mes gadget

Éditeur et Listicone gadget

Enfin j'y suis arriver mais ce que je veut dire c'est que par exemple pour l'éditor gadget
ont peut crée un menue popup mais hélas il s'affiche même si ont clique droit
sur la fenêtre ou un bouton etc.

Moi je voudrait un menue popup Différent a chaque gadget et pas que quand
je clique droit sur un bouton ou sur la fenêtre que l'un d'entre eu ce montre

exemple:

Image

Vous savez comment c'est possible de faire ?

Re: Menue popup...

Publié : jeu. 14/oct./2010 15:30
par falsam
Voila de quoi t'aider.

Code : Tout sélectionner

Enumeration
  #Mainform
  
  #Editor
  #ListIcon
  #String
  
  #PopUp_1 
  #popUp_2
EndEnumeration

Procedure OpenWindow_Window_0()
  If OpenWindow(#Mainform, 452, 214, 715, 445, "Deux popups", #PB_Window_SystemMenu)
    EditorGadget(#Editor, 20, 15, 430, 360)
    ListIconGadget(#ListIcon, 465, 15, 230, 355, "Gadget_1", 100)
    StringGadget(#String, 20, 395, 670, 25, "")
    
    CreatePopupMenu(#PopUp_1)
        MenuItem(1, "Couper")    
        MenuItem(2, "Copier")
        MenuItem(3, "Coller")
        MenuBar()
        MenuItem(4, "Ajouter dans le dictionnaire :p")
      
    CreatePopupMenu(#PopUp_2)
        MenuItem(1, "Selectionner")    
        MenuItem(2, "Insérer")
        MenuItem(3, "Ajouter")
    
  EndIf
EndProcedure

OpenWindow_Window_0()

;Le gadget est 'il survolé ?
Procedure.b GadgetHover(Gadget.l, Window.l)
  
  ; Ou se trouve le pointeur de la souris
  x = WindowMouseX(Window) 
  y = WindowMouseY(Window)
  
  ; Quel sont les coordonnées du gadget survolé
  gx = GadgetX(gadget)
  gy = GadgetY(gadget)
  
  If x >= gx And x <= gx+GadgetWidth(Gadget)
    If y >= gy And y <= gy+GadgetHeight(Gadget)
      ProcedureReturn #True
    EndIf
  EndIf
  ProcedureReturn #False
EndProcedure


Repeat
  Select  WaitWindowEvent()    
    Case #WM_RBUTTONDOWN
      
      If GadgetHover(#Editor,#MainForm)
        DisplayPopupMenu(#PopUp_1,WindowID(#MainForm))  
      EndIf
      
      If GadgetHover(#ListIcon,#Mainform)
        DisplayPopupMenu(#PopUp_2,WindowID(#Mainform))  
      EndIf
  
    Case #PB_Event_CloseWindow
      End
  EndSelect
ForEver

Re: Menue popup...

Publié : jeu. 14/oct./2010 15:44
par dayvid
Grand merci falsam :D

Whou trop génial ton code Falsam
c'est ingénieux :)