Page 1 sur 3

Soucis de double click

Publié : sam. 15/juin/2013 10:52
par Ar-S
Ce code dans ma boucle principale ne détecte pas le double click mais 2 fois l'event un click gauche, je ne pige pas pourquoi.
Une idée ?

Code : Tout sélectionner

Case #EXP ; gadget explorerlistgadget()

            Debug EventType() ; Vérif des events 

            Select EventType()

                  Case #PB_EventType_LeftDoubleClick
           
                        If ThreadLIST = 0
                              Debug "Lancement du thread"
                              ThreadLIST + 1
                              Thread = CreateThread(@ListPics(), Zbob)
                        Else
                              Debug "impossible, opération en cours"

                        EndIf
                     
            EndSelect

Re: Soucis de double click

Publié : sam. 15/juin/2013 12:46
par G-Rom
Sans testé le code , tu appels 2x de suite EventType() , avec ton debug , avec ton switch.
Appel le qu'une fois , colle le résultat dans une variable.

Re: Soucis de double click

Publié : sam. 15/juin/2013 13:11
par GallyHC
Bonjour,

Je pense aussi au vu de "Case #EXP ; gadget explorerlistgadget()" que tu fait tout tes tests d'évenement en dur...

il est plus que judicieux de faire :

Code : Tout sélectionner

    event = WaitWindowEvent()
    etype = EventType()
    evgad = EventGadget()
Et de vérifier la variable après. Enfin c'est ce que penses et ce que je fait. Et si je dis pas de bétise à chaque fois qui a un appel a une fonction elle ce vide après.

C'est quand même pas mal ce que disais "G-Rom" :).

Cordialement,
GallyHC

Re: Soucis de double click

Publié : sam. 15/juin/2013 13:43
par Ar-S
@G-Rom - Avec ou sans le debug ça ne fonctionne pas.

Je ne vois tout de même pas pourquoi ça ne fonctionnerai pas ainsi.
Voilà la boucle "complète" avec le minimum de contenu.
Je viens d'essayer en vérifiant les event en debut de boucle mais ça ne marche toujours pas !

Code : Tout sélectionner


; --------------------------------------------------------------------------------------------
; ----------- BOUCLE ------------ PRINCIPALE
; --------------------------------------------------------------------------------------------
Repeat

EvWIN = WaitWindowEvent()
EvGAD = EventGadget()
EvTYPE = EventType()
EvMENU = EventMenu()
 
  Select EvWIN
    ; ///////////////////
    
; --------------------------------------------------------------------------------------------
; ----------- EVENT ------------ MENU (raccourcis clavier)
; --------------------------------------------------------------------------------------------
      Case #PB_Event_Menu
            Select EvMenu
                  Case #TOUCHE_ESC
                        Quite = 1
            EndSelect
; --------------------------------------------------------------------------------------------
; ----------- EVENT ------------  GADGETS
; --------------------------------------------------------------------------------------------
       Case #PB_Event_Gadget
            Select EvGAD
                  Case #ROOT
  
                  Case #EXP

                  If EvTYPE =  #PB_EventType_LeftDoubleClick
                   
DEBUG "DOUBLE CLICK ?! " + str(EvTYPE)

                   
           
             EndIf  
            

            EndSelect

    ; ////////////////////////
EndSelect  

Until Quite = 1
Au niveau de la syntaxe je ne vois rien qui cloche.

P.S : perdre du (beaucoup de) temps pour ce genre de chose me gonfle à un point !

Re: Soucis de double click

Publié : sam. 15/juin/2013 13:49
par Backup
...

Re: Soucis de double click

Publié : sam. 15/juin/2013 13:54
par Ar-S
Merci dobro pour cette solution de secours mais bon, devoir passer par GetDoubleClickTime_ et GetTickCount_ pour gérer le double click c'est abuser.

----edit-----

Je vais tester en passant du double click au callback ou plus simple par un timer qui me renverra le path courant de l'explorerlist toutes les x ms..
je vais voir ce que ça donne.

Re: Soucis de double click

Publié : sam. 15/juin/2013 14:20
par G-Rom

Code : Tout sélectionner

If event = #PB_Event_LeftDoubleClick
...
marche tout aussi bien.

Re: Soucis de double click

Publié : sam. 15/juin/2013 14:44
par Ar-S
G-Rom a écrit :

Code : Tout sélectionner

If event = #PB_Event_LeftDoubleClick
...
marche tout aussi bien.
je suis passé par toutes les combi, rien ne change.
il doit y avoir une couille dans mon code.. si je galère trop je le posterai au complet (pas si long que ça)

Re: Soucis de double click

Publié : sam. 15/juin/2013 15:49
par G-Rom
par WindowEvent() je parle. pas eventtype().

Re: Soucis de double click

Publié : sam. 15/juin/2013 16:28
par salutcava
Bonjour/bonsoir

J'espere que je ne vais pas dire des betises aussi grosses que moi, j'essaye simplement d'aider :
En effet la detection du double click sur ce type de gadget ne veux pas fonctionner chez moi non plus.
Peut etre que le doubleclick-gauche sur un ExplorerListGadget est intercepté pour savoir s'il faut changer de repertoire courant, cette interception aurait pour effet de ne pas rendre accessible l'evenement doubleclick-gauche ? (car ca fonctionne pour le doubleclick-droit)

Comme Dobro, je n'ai qu'une solution alternative à proposer :
S'il s'agit de verifier qu'un nouveau repertoire s'affiche au lieu du doubleclick-gauche en lui-même, alors tu peux passer par GetGadgetText qui renvoie le repertoire courant affiché, et verifier si le repertoire courant affiché a changé depuis la derniere fois.
En esperant avoir été utile.

Bonne journée/soirée.

Re: Soucis de double click

Publié : sam. 15/juin/2013 17:44
par MLD
Salut Ar-S

Donne un bout de code avec une fenêtre car WaitWindowEvent() ne fonctionne pas sans une fenêtre.
Si tu fait cela ce soir, je regarde demain. Mais ton code parait un peu tordus :mrgreen:
Bon WE

Re: Soucis de double click

Publié : dim. 16/juin/2013 8:23
par G-Rom

Code : Tout sélectionner

OpenWindow(0,0,0,800,600,"")

While(1)
   event = WindowEvent()

  Select event
    Case #PB_Event_CloseWindow
      Break
    Case #PB_Event_LeftDoubleClick
      Debug "dbl click..."
  EndSelect
Wend
Marche sur , xp32 , 7x32, 7x64. linux x64.

Re: Soucis de double click

Publié : dim. 16/juin/2013 9:15
par Backup
...

Re: Soucis de double click

Publié : dim. 16/juin/2013 10:05
par MLD
Chut Il est 11 H, et il dort encore 8O
G-Rom et Dobro vous avez raisons vos codes fonctionne parfaitement. :lol:
Par hazard A-Rs Tu n'aurais pas oublié de créer une fenêtre avant l'appel a WaitWindowEvent() :oops: :mrgreen:

Re: Soucis de double click

Publié : dim. 16/juin/2013 10:22
par Ar-S
MLD a écrit :Chut Il est 11 H, et il dort encore 8O
G-Rom et Dobro vous avez raisons vos codes fonctionne parfaitement. :lol:
Par hazard A-Rs Tu n'aurais pas oublié de créer une fenêtre avant l'appel a WaitWindowEvent() :oops: :mrgreen:
Toi Image

Pour info MLD, tous les eventtype souris fonctionnent dans mon code, seul le double click chie. Et comme c'est pour un explorerlist, c'est embêtant pour récupérer le rep en cours.
Je vais encore chercher même si je pense m'orienter vers le callback.
Je vous tiens informé. Merci pour vos codes.