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  
