Page 1 sur 1
Clic multiples sur gadgets
Publié : ven. 03/juin/2005 13:35
par Cinabre
Bonjour,
J'ai un souci:
quand je clicques sur un boutton gadjet, il me prends plusieurs clic!
par exemple :
je crée un buttonGadget:
et je surveille l'appuie sur ce boutton dans ma boucle principale :
Code : Tout sélectionner
Repeat
Event = WaitWindowEvent()
If Event = #PB_Event_Gadget
Select EventGadgetID()
Case #Button_calc
If RunProgram("calc")=0 :MessageRequester("Erreur","Impossible de trouver la calculatrice", #PB_MessageRequester_Ok ):EndIf
EndSelect
EndIf
Until Event = #PB_EventCloseWindow
Lorsque je clicques dessus, cela me lance plusieurs occurences de la calculatrice.
Une seule me suffirait
Merci.
Publié : ven. 03/juin/2005 13:43
par Cinabre
J'ai trouvé une solution qui ne me paraît pas vraiment orthodoxe :
Code : Tout sélectionner
If EventType()=#PB_EventType_LeftClick
If RunProgram("calc")=0 :MessageRequester("Erreur","Impossible de trouver la calculatrice", #PB_MessageRequester_Ok ):EndIf
EndIf
Cela fonctionne sans que je comprenne vraiment pourquoi

Publié : ven. 03/juin/2005 19:37
par Backup
si tu as un blem de ce genre utilise les flag !!
un flag est une variable qui va te servir a retenir un etat par exemple
dans ton code
Code : Tout sélectionner
flag=0
Repeat
Event = WaitWindowEvent()
If Event = #PB_Event_Gadget
Select EventGadgetID()
Case #Button_calc and flag=0
Flag=1 ; tu pourra remetre ce flag =0 lorsque l'evenement du relaché de bouton de souris avec le case suivant
If RunProgram("calc")=0 :MessageRequester("Erreur","Impossible de trouver la calculatrice", #PB_MessageRequester_Ok ):EndIf
case #WM_LBUTTONUP
Debug "Bouton gauche relaché"
flag =0
endselect
Until Event = #PB_EventCloseWindow
tu comprend le principe ?

Publié : ven. 03/juin/2005 21:54
par Le Soldat Inconnu
si tu as utilisé AdvancedGadgetEvents(Etat), le comportement est normal car dans ce cas, tu recois tout les différent état du clic sur le bouton (appui, relaché, double cliqué)
Publié : sam. 04/juin/2005 10:18
par Cinabre
Le Soldat Inconnu a écrit :si tu as utilisé AdvancedGadgetEvents(Etat), le comportement est normal car dans ce cas, tu recois tout les différent état du clic sur le bouton (appui, relaché, double cliqué)
Exact!
Je règle ce pb en supprimant la ligne
J'ai compris comment cela fonctionne
J'aimerais bien gérer plus finement l'appui.
C'est à dire en sachant quand le boutton est relaché sur la gadget.
Mais pour cela il me faudrait connaître les différents messages gérés.
...
Je viens de trouver la liste des messages dans WIN32N.INC ; heureusement, ils sont assez parlants... enfin presque!
Merci
Publié : sam. 04/juin/2005 12:10
par Backup
je te l'avais pourtant ecrit !!
Publié : sam. 04/juin/2005 13:26
par Cinabre
Dobro a écrit :je te l'avais pourtant ecrit !!
Oups
