[RESOLU] PanelGadget et double clic

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
Avatar de l’utilisateur
venom
Messages : 3138
Inscription : jeu. 29/juil./2004 16:33
Localisation : Klyntar
Contact :

[RESOLU] PanelGadget et double clic

Message par venom »

Bonjour,

voilà j'ai voulu faire un petit code qui en double cliquant sur un onglet, me permette d'en créer un nouveau.

je me suis aperçu que le seul EventType() pris en compte etait le : #PB_EventType_RightClick 8O alors que je fait un clic gauche :lol: .

voici un code pour mieux comprendre le problème.

Code : Tout sélectionner

  If OpenWindow(0, 0, 0, 425, 325, "Exemple", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
   PanelGadget(1, 10, 10, 400, 300)
    AddGadgetItem(1, 0, "onglet 1")
    AddGadgetItem(1, 1, "onglet 2")
  EndIf 
  
  Repeat
   Event = WaitWindowEvent()
    Select Event
       
     Case #PB_Event_Gadget
      Select EventGadget()
       Case 1
        Select EventType()
         Case #PB_EventType_LeftClick        : Debug "Clic avec le bouton gauche de la souris"
         Case #PB_EventType_RightClick       : Debug "Clic avec le bouton droit de la souris"
         Case #PB_EventType_LeftDoubleClick  : Debug "Double-clic avec le bouton gauche de la souris"
         Case #PB_EventType_RightDoubleClick : Debug "Double-clic avec le bouton droit de la souris"

        EndSelect
      EndSelect
       
     EndSelect
   Until Event = #PB_Event_CloseWindow
je trouve la réaction du déboguer assez étrange 8O

vous en pensez quoi ?





@++
Dernière modification par venom le ven. 16/oct./2009 5:51, modifié 1 fois.
Windows 10 x64, PureBasic 5.73 x86 & x64
GPU : radeon HD6370M, CPU : p6200 2.13Ghz
Avatar de l’utilisateur
Ar-S
Messages : 9540
Inscription : dim. 09/oct./2005 16:51
Contact :

Re: PanelGadget et double clic

Message par Ar-S »

C'est vrai que c'est bizarre, surtout en le comparant à l'exemple evenType de la doc
Dejà tu peux mettre ton Endif à la fin de ton code. Mais ça ne change rien à la reaction bouton de droite. :?
~~~~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
PAPIPP
Messages : 534
Inscription : sam. 23/févr./2008 17:58

Re: PanelGadget et double clic

Message par PAPIPP »

Bonjour à tous
@venom
Peur_être un élément de réponse!

Code : Tout sélectionner

#WM_MOUSEWHEEL = $20A
#WHEEL_DELTA = 120

If OpenWindow(0, 0, 0, 425, 350, "Exemple", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
   PanelGadget(0, 10, 10, 400, 300)
    AddGadgetItem(0, 0, "onglet 1")
    AddGadgetItem(0, 1, "onglet 2")
      PanelGadget(1, 10, 30, 400, 300)
      AddGadgetItem(1, 0, "onglet 11")
      AddGadgetItem(1, 1, "onglet 12")
   CloseGadgetList()
 
  EndIf
 

;{- Event loop
; ******************************************** Debut de la boucle ************************************
Repeat
  ; Debug "**********************************deb_boucle **************************************** " + f_n(mclickd) + " " + f_n(meg)
  chaine$ = ""
  WWE = WaitWindowEvent()
  ;WE = WindowEvent(); ne pas mettre cette fonction en service sous risque de dysfonctionnement
  Fenetre = EventWindow()
  EG = EventGadget()
  ET = EventType()
  EM = EventMenu()
  EWP = EventwParam()
  ELP = EventlParam()
  ;******************************************************************************************
  
  Select WWE
    Case #PB_Event_CloseWindow
      End
    Case #WM_LBUTTONDOWN ;"Bouton gauche appuyé")
       Debug "Clic avec le bouton gauche de la souris  Gadget="+Str(EG)+" etat="+Str(GetGadgetState(EG))

    Case #WM_LBUTTONUP ;"Bouton gauche relaché")
    Case #WM_LBUTTONDBLCLK ;"Double clic gauche")
      Debug "Double-clic avec le bouton gauche de la souris Gadget="+Str(EG)+" etat="+Str(GetGadgetState(EG))
    Case #WM_RBUTTONDOWN ;"Bouton droit appuyé")
      Debug "Clic avec le bouton droit de la souris Gadget="+Str(EG)+" etat="+Str(GetGadgetState(EG))
    Case #WM_RBUTTONUP ;"Bouton droit relaché")
    Case #WM_RBUTTONDBLCLK ;"Double clic droit")
      Debug "Double-clic avec le bouton droit de la souris Gadget="+Str(EG)+" etat="+Str(GetGadgetState(EG))
    Case #WM_MBUTTONDOWN ;"Bouton du milieu appuyé"
    Case #WM_MBUTTONUP ;"Bouton du milieu relaché")
    Case #WM_MBUTTONDBLCLK ;"Double clic du milieu")
    Case #WM_MOUSEMOVE
    Case #WM_MOUSEWHEEL
      Molette.l = -(EWP>>16)/#WHEEL_DELTA
      If Molette>0 ;"Molette en avant de
      ElseIf Molette<0 ;"Molette en arrière de
      EndIf
    Case #PB_Event_Gadget
      Select ET
        Case #PB_EventType_LeftClick ;"Image : Bouton gauche appuyé"
        Case #PB_EventType_LeftDoubleClick ;"Image : Double clic gauche")
        Case #PB_EventType_RightClick ;"Image : Bouton Droit appuyé"
        Case #PB_EventType_RightDoubleClick ;"Image : Double clic droit")
      EndSelect
    Case #PB_Event_Repaint
      ; StartDrawing(WindowOutput(#Window_0))
      ; DrawImage(ImageID(Frame3D_5), 792, 97)
      ; ; DrawImage(ImageID(1), 320, 80)
      ; ; DrawImage(ImageID(2), 320, 200)
      ; StopDrawing()
      
  EndSelect
  
  ; *************************************** fin de la boucle *****************************************
  ; Until WE = #PB_Event_CloseWindow Or WWE = #PB_Event_CloseWindow
ForEver
End ;******************************* fin du PRG *************************************************

A+
Il est fort peu probable que les mêmes causes ne produisent pas les mêmes effets.(Einstein)
Et en logique positive cela donne.
Il est très fortement probable que les mêmes causes produisent les mêmes effets.
Avatar de l’utilisateur
venom
Messages : 3138
Inscription : jeu. 29/juil./2004 16:33
Localisation : Klyntar
Contact :

Re: PanelGadget et double clic

Message par venom »

Peur_être un élément de réponse!
merci bien PAPIPP :P
ce code renvoie bien tous les différents clics de souris. mais je trouve sa dommage de passer par les API alors que pas mal de gadget fonctionne avec EventType() de base :?

Code : Tout sélectionner

- ExplorerListGadget() 
- ExplorerTreeGadget() 
- ImageGadget() 
- ListViewGadget() 
- ListIconGadget() 
- MDIGadget() 
- SpinGadget() 
- StringGadget() 
- WebGadget() 
sa pourrais etre sympa que la version future le fasse nativement :P .
merci de ce code.





@++
Windows 10 x64, PureBasic 5.73 x86 & x64
GPU : radeon HD6370M, CPU : p6200 2.13Ghz
Avatar de l’utilisateur
Ulix
Messages : 315
Inscription : ven. 04/juin/2004 14:27
Localisation : Frontignan

Re: [RESOLU] PanelGadget et double clic

Message par Ulix »

@ PAPIPP : Sympa ce code, permet de contourné certaine difficulté avec les événements des gadgets.

Existe-il aussi pour LINUX ?

Merci d'avance :!: :P
Répondre