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
Re: Soucis de double click
Publié : sam. 15/juin/2013 14:44
par Ar-S
G-Rom a écrit :
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
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
G-Rom et Dobro vous avez raisons vos codes fonctionne parfaitement.
Par hazard A-Rs Tu n'aurais pas oublié de créer une fenêtre avant l'appel a WaitWindowEvent()

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
G-Rom et Dobro vous avez raisons vos codes fonctionne parfaitement.
Par hazard A-Rs Tu n'aurais pas oublié de créer une fenêtre avant l'appel a WaitWindowEvent()

Toi
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.