Page 3 sur 3

Re: Soucis de double click

Publié : lun. 17/juin/2013 15:12
par Mesa
Si on remplace #PB_EventType_LeftDoubleClick par le nombre 768, ça marche 8O
Mais je ne sais pas pourquoi :twisted:

Code : Tout sélectionner

Debug #PB_EventType_LeftDoubleClick
UseJPEGImageEncoder()
UseJPEGImageDecoder()
UsePNGImageEncoder()
UsePNGImageDecoder()
UseTGAImageDecoder()
UseTIFFImageDecoder()
; UseJPEG2000ImageDecoder()
; UseJPEG2000ImageEncoder()

Declare Affiche()

Enumeration
  #ARS
EndEnumeration

Enumeration
  #Panel
  #ROOT
  #EXP
  #CANVAS
EndEnumeration

Enumeration
  #TOUCHE_ESC
EndEnumeration

Enumeration 
  #T ; Timer
EndEnumeration

Structure Info
  ID.i
  imgID.i
  IDpic.i
  IDmin.i
  imgIDpic.q
  imgIDmin.q
  Name.s
  Path.s
  L.i
  H.i
  
  Poids.q
  
EndStructure

Global.b Quite, ThreadLIST
Global NewMap img.info()
Global.i Hbarre, Lwin, Hwin, Lmin, Hmin, Lexp, Lcanvas, Hcanvas, LminPic, HminPic
Global.s RepEnCours, RepSelect, rep, OldROOT, Root, ROOTex
Global.s IMGpath  

;-----------------------------
; A MODIFIER
IMGpath.s = "F:\"
; -----------------------------


Lexp = 300 ; largeur de l'explorer
Quite = 0
ThreadLIST = 0      


; --------------------------------------------------------------------------------------------
; ----------- PROCE ------------ LISTAGE DES IMAGES
; --------------------------------------------------------------------------------------------


Procedure.i ListPics(*ZBOUB)
  
EndProcedure

; --------------------------------------------------------------------------------------------
; ----------- PROCE ------------ AFFICHAGE DES MINIATURES
; --------------------------------------------------------------------------------------------

Procedure Affiche()
  
EndProcedure


; --------------------------------------------------------------------------------------------
; ----------- PROCE ------------ FENETRE PRINCIPALE
; --------------------------------------------------------------------------------------------

If OpenWindow(#ARS, #PB_Ignore, #PB_Ignore, #PB_Ignore, #PB_Ignore, "Ar-S VISIONEUSE test ",#PB_Window_BorderLess) = 0;
  End
EndIf    


SetWindowState(#ars, #PB_Window_Maximize)
Lwin = WindowWidth(#ars, #PB_Window_InnerCoordinate)
Hwin = WindowHeight(#ars, #PB_Window_InnerCoordinate)
Debug "fenêtre : " + Str(Lwin) + " x " +Str(Hwin)

PanelGadget(#Panel, 0, 0, Lwin, Hwin)
LCanvas = (GadgetWidth(#panel)) 
HCanvas =  GadgetHeight(#panel) 

; Tab #1
AddGadgetItem(#Panel, -1, "Choix du dossier")
ExplorerComboGadget(#ROOT,0,0, Lexp,25, "F:\",#PB_Explorer_DrivesOnly)
ExplorerListGadget(#EXP, 0, 25, Lexp, Hwin-25, IMGpath.s , #PB_Explorer_NoFiles |#PB_Explorer_AutoSort|#PB_Explorer_FullRowSelect|#PB_Explorer_GridLines)
RepEnCours.s = GetGadgetText(#EXP)
Debug "RepEnCours : " + RepEnCours
CanvasGadget(#CANVAS, Lexp, 0, LCanvas-Lexp, Hcanvas)

CloseGadgetList()

AddKeyboardShortcut(#ARS, #PB_Shortcut_Escape, #TOUCHE_ESC)   
AddWindowTimer(#ARS, #T, 50)


; --------------------------------------------------------------------------------------------
; ----------- BOUCLE ------------ PRINCIPALE
; --------------------------------------------------------------------------------------------
Repeat
  
  Event = WaitWindowEvent(20) 
  ; 			EventType   = #Null  ; On ne sait pas encore 
  ; 		EventGadget = #Null  ; On ne sait pas encore 
  ;EventType   = EventType()   ; appel au bon moment
  
  ;If Event
  
  Select Event
      ; --------------------------------------------------------------------------------------------
      ; ----------- EVENT ------------ WINDOW + dbleclic
      ; --------------------------------------------------------------------------------------------
      
    Case #PB_Event_LeftDoubleClick
      Debug "double clic dans fenetre"
      
      ; --------------------------------------------------------------------------------------------
      ; ----------- EVENT ------------  GADGETS
      ; --------------------------------------------------------------------------------------------
    Case #PB_Event_Gadget
      EventGadget = EventGadget() ; appel au bon moment
      ;EventType   = EventType()   ; appel au bon moment
      
      Select EventGadget
          
          
        Case #EXP 
          ;Debug "#EXP"
          EventType   = EventType()   ; appel au bon moment
          ;Debug EventType ;-> donne 768 ?
         
          Select EventType 
            Case 768;#PB_EventType_LeftDoubleClick
              
              Debug "DOUBLE CLIC !"
              
          EndSelect 
          
          
          
        Case #ROOT
          
          OldROOT.s = GetGadgetText(#ROOT)
          If Left(GetGadgetText(#EXP),1) <> Left(GetGadgetText(#ROOT),1)
            SetGadgetText(#EXP, GetGadgetText(#ROOT))
          EndIf
          
          ;EndIf                 
      EndSelect
      ; --------------------------------------------------------------------------------------------
      ; ----------- EVENT ------------ MENU (raccourcis clavier)
      ; --------------------------------------------------------------------------------------------
    Case #PB_Event_Menu
      Select EventMenu()
        Case #TOUCHE_ESC
          
          Quite = 1
          Break
      EndSelect           
      
  EndSelect
  ;EndIf 
  
ForEver



RemoveKeyboardShortcut(#ARS, #TOUCHE_ESC)
CloseWindow(#ARS)
End
;
;}


Mesa

Re: Soucis de double click

Publié : lun. 17/juin/2013 15:42
par Ar-S
Mesa a écrit :Si on remplace #PB_EventType_LeftDoubleClick par le nombre 768, ça marche 8O
Mais je ne sais pas pourquoi :twisted:
:roll: oui mais bon, c'est le genre de truc qui ne marchera plus dans une prochaine (ou autre) version de l'OS.. Je préfèrerai voir pourquoi mon code suivant l'ex de G-rom ne fonctionne pas.

Code : Tout sélectionner

UseJPEGImageEncoder()
UseJPEGImageDecoder()
UsePNGImageEncoder()
UsePNGImageDecoder()
UseTGAImageDecoder()
UseTIFFImageDecoder()
; UseJPEG2000ImageDecoder()
; UseJPEG2000ImageEncoder()

Declare Affiche()

Enumeration
	#ARS
EndEnumeration

Enumeration
	#Panel
	#ROOT
	#EXP
	#CANVAS
EndEnumeration

Enumeration
	#TOUCHE_ESC
EndEnumeration

Enumeration 
#T ; Timer
EndEnumeration

Structure Info
ID.i
imgID.i
IDpic.i
IDmin.i
imgIDpic.q
imgIDmin.q
Name.s
Path.s
L.i
H.i

Poids.q

EndStructure

Global.b Quite, ThreadLIST
Global NewMap img.info()
Global.i Hbarre, Lwin, Hwin, Lmin, Hmin, Lexp, Lcanvas, Hcanvas, LminPic, HminPic
Global.s RepEnCours, RepSelect, rep, OldROOT, Root, ROOTex
Global.s IMGpath  

;-----------------------------
; A MODIFIER
IMGpath.s = "F:\Pics\"
; -----------------------------


Lexp = 300 ; largeur de l'explorer
Quite = 0
ThreadLIST = 0      


; --------------------------------------------------------------------------------------------
; ----------- PROCE ------------ LISTAGE DES IMAGES
; --------------------------------------------------------------------------------------------


Procedure.i ListPics(*ZBOUB)
			
EndProcedure

; --------------------------------------------------------------------------------------------
; ----------- PROCE ------------ AFFICHAGE DES MINIATURES
; --------------------------------------------------------------------------------------------

Procedure Affiche()

EndProcedure


; --------------------------------------------------------------------------------------------
; ----------- PROCE ------------ FENETRE PRINCIPALE
; --------------------------------------------------------------------------------------------

	If OpenWindow(#ARS, #PB_Ignore, #PB_Ignore, #PB_Ignore, #PB_Ignore, "Ar-S VISIONEUSE test ",#PB_Window_BorderLess) = 0
			End
	EndIf    

			
		SetWindowState(#ars, #PB_Window_Maximize)
			Lwin = WindowWidth(#ars, #PB_Window_InnerCoordinate)
			Hwin = WindowHeight(#ars, #PB_Window_InnerCoordinate)
			Debug "fenêtre : " + Str(Lwin) + " x " +Str(Hwin)
				
				PanelGadget(#Panel, 0, 0, Lwin, Hwin)
				LCanvas = (GadgetWidth(#panel)) 
				HCanvas =  GadgetHeight(#panel) 
				
				; Tab #1
				AddGadgetItem(#Panel, -1, "Choix du dossier")
						ExplorerComboGadget(#ROOT,0,0, Lexp,25, "F:\",#PB_Explorer_DrivesOnly)
						ExplorerListGadget(#EXP, 0, 25, Lexp, Hwin-25, IMGpath.s , #PB_Explorer_NoFiles |#PB_Explorer_AutoSort|#PB_Explorer_FullRowSelect|#PB_Explorer_GridLines)
						RepEnCours.s = GetGadgetText(#EXP)
						Debug "RepEnCours : " + RepEnCours
						CanvasGadget(#CANVAS, Lexp, 0, LCanvas-Lexp, Hcanvas)
				
			CloseGadgetList()

				AddKeyboardShortcut(#ARS, #PB_Shortcut_Escape, #TOUCHE_ESC)   
				AddWindowTimer(#ARS, #T, 50)
						

; --------------------------------------------------------------------------------------------
; ----------- BOUCLE ------------ PRINCIPALE
; --------------------------------------------------------------------------------------------
While(1)
			
			Event = WindowEvent() 
			EventType   = #Null  ; On ne sait pas encore 
		EventGadget = #Null  ; On ne sait pas encore 
		
		
			If Event
			
						Select Event
									; --------------------------------------------------------------------------------------------
									; ----------- EVENT ------------ WINDOW + dbleclic
									; --------------------------------------------------------------------------------------------
									
								Case #PB_Event_LeftDoubleClick
									Debug "double clic dans fenetre"
												
									; --------------------------------------------------------------------------------------------
									; ----------- EVENT ------------  GADGETS
									; --------------------------------------------------------------------------------------------
									Case #PB_Event_Gadget
												EventGadget = EventGadget() ; appel au bon moment
											EventType   = EventType()   ; appel au bon moment 
										
										
												If EventGadget = #EXP And EventType = #PB_EventType_LeftDoubleClick
									
															Debug "DOUBLE CLIC !"
;                          
												EndIf 
									

									
													If EventGadget = #ROOT
									
															OldROOT.s = GetGadgetText(#ROOT)
																		If Left(GetGadgetText(#EXP),1) <> Left(GetGadgetText(#ROOT),1)
																					SetGadgetText(#EXP, GetGadgetText(#ROOT))
																		EndIf
															
													EndIf                 
									
									; --------------------------------------------------------------------------------------------
									; ----------- EVENT ------------ MENU (raccourcis clavier)
									; --------------------------------------------------------------------------------------------
									Case #PB_Event_Menu
												Select EventMenu()
															Case #TOUCHE_ESC
															
																		Quite = 1
																		Break
												EndSelect           
												
						EndSelect
			EndIf 

Wend



RemoveKeyboardShortcut(#ARS, #TOUCHE_ESC)
CloseWindow(#ARS)
End
;
;}


Re: Soucis de double click

Publié : lun. 17/juin/2013 16:12
par graph100
La valeur 768 correspond à la constante PureBasic : #pb_EventType_Change
Après ce que je n'ai pas compris c'est pourquoi ça le renvois 2 fois. ça viens peut être de ton code
En tout cas tu peux l'utiliser puisque c'est une constante PB...

Dans tout les cas, la document de PB est erronée, ou bien le gadget est bugué. Je n'ai pas trop suivit pour savoir si Fred était au courant ou pas. Mais ça :
Aide PureBasic 5.11 a écrit :Les évènements suivants sont disponibles par l'intermédiaire d' EventType():
#PB_EventType_Change : La sélection de l'élément courant vient de changer.
#PB_EventType_LeftClick : L'utilisateur a cliqué sur un élément avec le bouton gauche de la souris.
#PB_EventType_RightClick : L'utilisateur a cliqué sur un élément avec le bouton droit de la souris.
#PB_EventType_LeftDoubleClick : L'utilisateur a double-cliqué sur un élément avec le bouton gauche de la souris.
#PB_EventType_RightDoubleClick: L'utilisateur a double-cliqué sur un élément avec le bouton droit de la souris.
#PB_EventType_DragStart : L'utilisateur a essayé de lancer Une opération 'Glisser & Déposer'.
C'est pas vrai !! Tout ce qui touche au clic gauche ne fonctionne pas correctement.

Code : Tout sélectionner

UseJPEGImageEncoder()
UseJPEGImageDecoder()
UsePNGImageEncoder()
UsePNGImageDecoder()
UseTGAImageDecoder()
UseTIFFImageDecoder()
; UseJPEG2000ImageDecoder()
; UseJPEG2000ImageEncoder()

Declare Affiche()

Enumeration
	#ARS
EndEnumeration

Enumeration
	#Panel
	#ROOT
	#EXP
	#CANVAS
EndEnumeration

Enumeration
	#TOUCHE_ESC
EndEnumeration

Enumeration 
	#T ; Timer
EndEnumeration

Structure Info
	ID.i
	imgID.i
	IDpic.i
	IDmin.i
	imgIDpic.q
	imgIDmin.q
	Name.s
	Path.s
	L.i
	H.i
	
	Poids.q
	
EndStructure

Global.b Quite, ThreadLIST
Global NewMap img.info()
Global.i Hbarre, Lwin, Hwin, Lmin, Hmin, Lexp, Lcanvas, Hcanvas, LminPic, HminPic
Global.s RepEnCours, RepSelect, rep, OldROOT, Root, ROOTex
Global.s IMGpath  

;-----------------------------
; A MODIFIER
IMGpath.s = "F:\Pics\"
; -----------------------------


Lexp = 300 ; largeur de l'explorer
Quite = 0
ThreadLIST = 0      


; --------------------------------------------------------------------------------------------
; ----------- PROCE ------------ LISTAGE DES IMAGES
; --------------------------------------------------------------------------------------------


Procedure.i ListPics(*ZBOUB)
	
EndProcedure

; --------------------------------------------------------------------------------------------
; ----------- PROCE ------------ AFFICHAGE DES MINIATURES
; --------------------------------------------------------------------------------------------

Procedure Affiche()
	
EndProcedure


; --------------------------------------------------------------------------------------------
; ----------- PROCE ------------ FENETRE PRINCIPALE
; --------------------------------------------------------------------------------------------

If OpenWindow(#ARS, #PB_Ignore, #PB_Ignore, #PB_Ignore, #PB_Ignore, "Ar-S VISIONEUSE test ",#PB_Window_BorderLess) = 0
	End
EndIf    


SetWindowState(#ars, #PB_Window_Maximize)
Lwin = WindowWidth(#ars, #PB_Window_InnerCoordinate)
Hwin = WindowHeight(#ars, #PB_Window_InnerCoordinate)
Debug "fenêtre : " + Str(Lwin) + " x " +Str(Hwin)

; PanelGadget(#Panel, 0, 0, Lwin, Hwin)
; LCanvas = (GadgetWidth(#panel)) 
; HCanvas =  GadgetHeight(#panel) 

; Tab #1
; AddGadgetItem(#Panel, -1, "Choix du dossier")
ExplorerComboGadget(#ROOT,0,0, Lexp,25, "F:\",#PB_Explorer_DrivesOnly)
ExplorerListGadget(#EXP, 0, 25, Lexp, Hwin-25, IMGpath.s , #PB_Explorer_NoFiles |#PB_Explorer_AutoSort|#PB_Explorer_FullRowSelect|#PB_Explorer_GridLines)
RepEnCours.s = GetGadgetText(#EXP)
Debug "RepEnCours : " + RepEnCours
; CanvasGadget(#CANVAS, Lexp, 0, LCanvas-Lexp, Hcanvas)

; CloseGadgetList()

AddKeyboardShortcut(#ARS, #PB_Shortcut_Escape, #TOUCHE_ESC)   
AddWindowTimer(#ARS, #T, 50)


; --------------------------------------------------------------------------------------------
; ----------- BOUCLE ------------ PRINCIPALE
; --------------------------------------------------------------------------------------------
While(1)
	
	Event = WindowEvent() 
	EventType   = #Null  ; On ne sait pas encore 
	EventGadget = #Null  ; On ne sait pas encore 
	
	
	If Event
		
		Select Event
				; --------------------------------------------------------------------------------------------
				; ----------- EVENT ------------ WINDOW + dbleclic
				; --------------------------------------------------------------------------------------------
				
			Case #PB_Event_LeftDoubleClick
				Debug "double clic dans fenetre"
				
				; --------------------------------------------------------------------------------------------
				; ----------- EVENT ------------  GADGETS
				; --------------------------------------------------------------------------------------------
			Case #PB_Event_Gadget
				EventGadget = EventGadget() ; appel au bon moment
				EventType   = EventType()   ; appel au bon moment 
				
				
				If EventGadget = #EXP And EventType = #PB_EventType_Change
					
					Debug "DOUBLE CLIC !"
					;                          
				EndIf 
				
				
				
				If EventGadget = #ROOT
					
					OldROOT.s = GetGadgetText(#ROOT)
					If Left(GetGadgetText(#EXP),1) <> Left(GetGadgetText(#ROOT),1)
						SetGadgetText(#EXP, GetGadgetText(#ROOT))
					EndIf
					
				EndIf                 
				
				; --------------------------------------------------------------------------------------------
				; ----------- EVENT ------------ MENU (raccourcis clavier)
				; --------------------------------------------------------------------------------------------
			Case #PB_Event_Menu
				Select EventMenu()
					Case #TOUCHE_ESC
						
						Quite = 1
						Break
				EndSelect           
				
		EndSelect
	EndIf 
	
Wend



RemoveKeyboardShortcut(#ARS, #TOUCHE_ESC)
CloseWindow(#ARS)
End
;
;}


Re: Soucis de double click

Publié : lun. 17/juin/2013 16:31
par Mesa
Graph100 a été plus rapide que moi.

En effet, avec ma solution, en ligne 1, j'avais mis " Debug #PB_EventType_LeftDoubleClick " qui me renvoyait "2" et en ligne 148 "Debug EventType" qui me renvoyait 768.

Effectivement "#PB_EventType_Change" vaut 768, donc tu peux donc utiliser la solution de Graph100 pour de longues années sans problème pour les dossiers car, le gadget "ExplorerListGadget" intercepte forcement le double-clic (pour entrer dans un sous-dossier). Mais pour les fichiers, le "#PB_EventType_LeftDoubleClick" fonctionne bien, comme avec l'exemple ci dessous.

Code : Tout sélectionner

;Debug #PB_EventType_LeftDoubleClick
UseJPEGImageEncoder()
UseJPEGImageDecoder()
UsePNGImageEncoder()
UsePNGImageDecoder()
UseTGAImageDecoder()
UseTIFFImageDecoder()
; UseJPEG2000ImageDecoder()
; UseJPEG2000ImageEncoder()

Declare Affiche()

Enumeration
  #ARS
EndEnumeration

Enumeration
  #Panel
  #ROOT
  #EXP
  #CANVAS
EndEnumeration

Enumeration
  #TOUCHE_ESC
EndEnumeration

Enumeration 
  #T ; Timer
EndEnumeration

Structure Info
  ID.i
  imgID.i
  IDpic.i
  IDmin.i
  imgIDpic.q
  imgIDmin.q
  Name.s
  Path.s
  L.i
  H.i
  
  Poids.q
  
EndStructure

Global.b Quite, ThreadLIST
Global NewMap img.info()
Global.i Hbarre, Lwin, Hwin, Lmin, Hmin, Lexp, Lcanvas, Hcanvas, LminPic, HminPic
Global.s RepEnCours, RepSelect, rep, OldROOT, Root, ROOTex
Global.s IMGpath  

;-----------------------------
; A MODIFIER
IMGpath.s = "F:\"
; -----------------------------


Lexp = 300 ; largeur de l'explorer
Quite = 0
ThreadLIST = 0      


; --------------------------------------------------------------------------------------------
; ----------- PROCE ------------ LISTAGE DES IMAGES
; --------------------------------------------------------------------------------------------


Procedure.i ListPics(*ZBOUB)
  
EndProcedure

; --------------------------------------------------------------------------------------------
; ----------- PROCE ------------ AFFICHAGE DES MINIATURES
; --------------------------------------------------------------------------------------------

Procedure Affiche()
  
EndProcedure


; --------------------------------------------------------------------------------------------
; ----------- PROCE ------------ FENETRE PRINCIPALE
; --------------------------------------------------------------------------------------------

If OpenWindow(#ARS, #PB_Ignore, #PB_Ignore, #PB_Ignore, #PB_Ignore, "Ar-S VISIONEUSE test ",#PB_Window_BorderLess) = 0;
  End
EndIf    


SetWindowState(#ars, #PB_Window_Maximize)
Lwin = WindowWidth(#ars, #PB_Window_InnerCoordinate)
Hwin = WindowHeight(#ars, #PB_Window_InnerCoordinate)
Debug "fenêtre : " + Str(Lwin) + " x " +Str(Hwin)

PanelGadget(#Panel, 0, 0, Lwin, Hwin)
LCanvas = (GadgetWidth(#panel)) 
HCanvas =  GadgetHeight(#panel) 

; Tab #1
AddGadgetItem(#Panel, -1, "Choix du dossier")
ExplorerComboGadget(#ROOT,0,0, Lexp,25, "F:\",#PB_Explorer_DrivesOnly)
ExplorerListGadget(#EXP, 0, 25, Lexp, Hwin-25, IMGpath.s , #PB_Explorer_AutoSort|#PB_Explorer_FullRowSelect|#PB_Explorer_GridLines)
RepEnCours.s = GetGadgetText(#EXP)
Debug "RepEnCours : " + RepEnCours
CanvasGadget(#CANVAS, Lexp, 0, LCanvas-Lexp, Hcanvas)

CloseGadgetList()

AddKeyboardShortcut(#ARS, #PB_Shortcut_Escape, #TOUCHE_ESC)   
AddWindowTimer(#ARS, #T, 50)


; --------------------------------------------------------------------------------------------
; ----------- BOUCLE ------------ PRINCIPALE
; --------------------------------------------------------------------------------------------
Repeat
  
  Event = WaitWindowEvent(20) 
  ;          EventType   = #Null  ; On ne sait pas encore 
  ;       EventGadget = #Null  ; On ne sait pas encore 
  ;EventType   = EventType()   ; appel au bon moment
  
  ;If Event
  
  Select Event
      ; --------------------------------------------------------------------------------------------
      ; ----------- EVENT ------------ WINDOW + dbleclic
      ; --------------------------------------------------------------------------------------------
      
    Case #PB_Event_LeftDoubleClick
      Debug "double clic dans fenetre"
      
      ; --------------------------------------------------------------------------------------------
      ; ----------- EVENT ------------  GADGETS
      ; --------------------------------------------------------------------------------------------
    Case #PB_Event_Gadget
      EventGadget = EventGadget() ; appel au bon moment
      ;EventType   = EventType()   ; appel au bon moment
      
      Select EventGadget
          
          
        Case #EXP 
          ;Debug "#EXP"
          EventType   = EventType()   ; appel au bon moment
          ;Debug EventType ;-> donne 768 ?
          
          Select EventType 
            Case #PB_EventType_Change 
              Debug "DOUBLE CLIC dossier !"
              
            Case #PB_EventType_LeftDoubleClick
              Debug "DOUBLE CLIC fichier !"	
          EndSelect 
          
          
          
        Case #ROOT
          
          OldROOT.s = GetGadgetText(#ROOT)
          If Left(GetGadgetText(#EXP),1) <> Left(GetGadgetText(#ROOT),1)
            SetGadgetText(#EXP, GetGadgetText(#ROOT))
          EndIf
          
          ;EndIf                 
      EndSelect
      ; --------------------------------------------------------------------------------------------
      ; ----------- EVENT ------------ MENU (raccourcis clavier)
      ; --------------------------------------------------------------------------------------------
    Case #PB_Event_Menu
      Select EventMenu()
        Case #TOUCHE_ESC
          
          Quite = 1
          Break
      EndSelect           
      
  EndSelect
  ;EndIf 
  
ForEver



RemoveKeyboardShortcut(#ARS, #TOUCHE_ESC)
CloseWindow(#ARS)
End
;
;}



Je pense qu'il faut annoter la doc.

Mesa.

Re: Soucis de double click

Publié : lun. 17/juin/2013 16:32
par nemerod256
plus de code
dommage pour les autre

Re: Soucis de double click

Publié : lun. 17/juin/2013 16:40
par Ar-S
La valeur 768 correspond à la constante PureBasic : #pb_EventType_Change
Et si "demain" la constante devient 812.. pas la bonne solution.
Après ce que je n'ai pas compris c'est pourquoi ça le renvois 2 fois. ça viens peut être de ton code
Bonne question

En résumé dans ce code :
If eventgadget = #EXP

If EventType = #PB_EventType_LeftDoubleClick Ne fonctionne pas
If EventType = #PB_EventType_Change Fonctionne mais on est un peu hors sujet
If EventType =768 Fonctionne

endif
---edit---
Arf vous avez répondu en temps.
@nemerod256 : Pas de brique :) merci

Re: Soucis de double click

Publié : lun. 17/juin/2013 16:41
par graph100
* Jette une brique *

[edit] : Zut !! Trop tard... j'ai passé trop de temps pour trouver un smiley qui jette une brique... Faudra que je le fasse.

Re: Soucis de double click

Publié : lun. 17/juin/2013 17:08
par Backup
......

Re: Soucis de double click

Publié : lun. 17/juin/2013 17:19
par nemerod256
auto supprimé par moi

Re: Soucis de double click

Publié : lun. 17/juin/2013 17:34
par graph100
Bon ! Je vais répondre. Mais ça sera la dernière fois. Je n'aurai vraiment pas du lire ton post.
nemerod256 a écrit :
Ar-S a écrit :
La valeur 768 correspond à la constante PureBasic : #pb_EventType_Change
Et si "demain" la constante devient 812.. pas la bonne solution.
Après ce que je n'ai pas compris c'est pourquoi ça le renvois 2 fois. ça viens peut être de ton code
Bonne question
Déjà, Ar-S répondais à Mesa et Moi. Déjà.
nemerod256 a écrit :je viens de dire que j'ai un bug avec les constance
donc se que tu fais tu remplace le $202 par ta constante
sa me saoul
toujours a faire une remarque sur les constante que je code
J'AI UN BUG
au pire tu utilise sa $3339 c'est pour le double clic de la 5.11 de PB
Ensuite un bug de constante ? Wtf ?
Mettre des chiffres en hexadecimal pour rendre le code compliqué et inutile à lire ? wtf ?
Pourquoi tu les mets pas en décimal, va pas me dire que tu penses et réfléchi en hexa.

Ensuite ta réponse était à côté de la plaque, ce pourquoi Dobro n'a rien relevé d'autre, voulant rester gentil (parce qu'il est gentil :lol: ).
nemerod256 a écrit :bref passons, inutile de s’énerve pour si peu
voila, je passe un petit coup de main et on me remercie avec des brique
je fais de mon mieux pour trouvé une solution
je vais pouvoir réalisé le rêve qu'un ami MARIO réelle 3D
____________________________________________________
moi sa me donne bien une seul fois le répertoire
tu doit avoir une config sur ton pc qui doit fais 2 fois le double clique avec PB
sauf si tu fais 3 clic
ou que tu double clic sur une zone vide
c'est juste pour vous dire que j'ai pas besoin d'un eventtype()
Hein ? J'ai rien compris... Ce n'est ni structuré, ni intelligible. On dirais un troll
nemerod256 a écrit : merci Dobro de détendre se topic
au moins un qui sais rire, est qui est pas que sur du serieu
c'est un forum, tout le monde a le droit de donné sa réponse
désolé mais la je veux ajouté de la couleur a mes message c'est l'été
merci a vous tous
se re-connaitre de m'avoir aidé
quant j'en avais besoin
Bref, pourquoi pas après tout !
Évite les interventions de ce genre, s'il te plait. C'est désagréable, pendant un moment on essaie de comprendre sérieusement ce que tu as voulu dire, puis on se rend compte que c'est du temps perdu.

Oui c'est un forum, mais c'est un forum de programmation, et les réponse doivent être constructive, ce qui n'est pas le cas des tiennes.
Si tu postes des réponses utiles, moi je n'ai rien à redire, mais là ce n'est pas le cas.

Re: Soucis de double click

Publié : lun. 17/juin/2013 17:42
par nemerod256
graph100 a écrit :...éable, pendant un moment on essaie de comprendre sérieusement ce que tu as voulu dire, puis on se rend compte que c'est du temps perdu.
je veux donné mon aide
mais voila je me fais passé pour un nul a cause de sa
c'est pas parc-que un topic a été lancé avec 2 3 personne que c'est eu qui devrons trouvé la solution
je suis dessus
moi qui viens déjà pas beaucoup sur le forum
sa me donne pas vraiment envie de resté
mais je reste car je sais qu'il y a des personne bien
qui aide tous le monde
nemerod256 a écrit :je voulais juste aidé

Re: Soucis de double click

Publié : ven. 21/juin/2013 18:35
par Golfy
Pour le double clic, au vu des réponses dans le forum anglais, j'ai choisi un algorithme de ce genre :

Code : Tout sélectionner

DeClick = 0														; act as a fuse for DoubleClick : if set to 1, then
de = ElapsedMilliseconds()						; wait a DoubleClick event before 200 ms timeout

;--- LOOP -----------------------------------------------------------------------------------
Repeat
	Event = WaitWindowEvent(50) 
	
	If Event = #PB_Event_Gadget
  	GadgetSelected = EventGadget()
  	EType          = EventType()

    If EType = #PB_EventType_LeftButtonDown And ElapsedMilliseconds()-de > 200 And DeClick=1
    	actionOnModule(GadgetSelected)
    	DeClick = 0
    ElseIf Declick = 0
    	DeClick = 1
    	de = ElapsedMilliseconds()
    EndIf
    If EType = #PB_EventType_LeftDoubleClick
    	DeClick = 0
    	action2OnModule(GadgetSelected)
    EndIf
  EndIf   
   
Until Event = #PB_Event_CloseWindow
Ca n'est pas hyper-sexy mais ça marche super-bien.
Le problème étant que le système détecte d'abord un clic puis un double-clic (et non directement un double-clic).

Désolé si ma réponse est à coté de la plaque, je n'ai pas lu les 3 pages de post (avec les polémiques incluses) et j'essaye juste d'apporter un peu d'aide.