Soucis de double click

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
Mesa
Messages : 1126
Inscription : mer. 14/sept./2011 16:59

Re: Soucis de double click

Message 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
Avatar de l’utilisateur
Ar-S
Messages : 9539
Inscription : dim. 09/oct./2005 16:51
Contact :

Re: Soucis de double click

Message 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
;
;}

~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
Avatar de l’utilisateur
graph100
Messages : 1318
Inscription : sam. 21/mai/2005 17:50

Re: Soucis de double click

Message 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
;
;}

_________________________________________________
Mon site : CeriseCode (Attention Chantier perpétuel ;))
Mesa
Messages : 1126
Inscription : mer. 14/sept./2011 16:59

Re: Soucis de double click

Message 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.
Dernière modification par Mesa le lun. 17/juin/2013 16:33, modifié 1 fois.
Avatar de l’utilisateur
nemerod256
Messages : 39
Inscription : dim. 19/févr./2012 1:51
Localisation : la ou la météo est bizarre
Contact :

Re: Soucis de double click

Message par nemerod256 »

plus de code
dommage pour les autre
Dernière modification par nemerod256 le lun. 17/juin/2013 17:44, modifié 1 fois.
purebasic 5.00
minecraft (en jeu (redstone))
perturbe les programme 32 et 64-bit directement dans la RAM du pc !!! (aussi se que je crée avec purebasic (rien que pour le lol ou a des fin de débogage)
bref rien que du plaisir !!!!!
Avatar de l’utilisateur
Ar-S
Messages : 9539
Inscription : dim. 09/oct./2005 16:51
Contact :

Re: Soucis de double click

Message 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
Dernière modification par Ar-S le lun. 17/juin/2013 16:41, modifié 1 fois.
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
Avatar de l’utilisateur
graph100
Messages : 1318
Inscription : sam. 21/mai/2005 17:50

Re: Soucis de double click

Message 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.
_________________________________________________
Mon site : CeriseCode (Attention Chantier perpétuel ;))
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Re: Soucis de double click

Message par Backup »

......
Dernière modification par Backup le mar. 19/août/2014 10:01, modifié 1 fois.
Avatar de l’utilisateur
nemerod256
Messages : 39
Inscription : dim. 19/févr./2012 1:51
Localisation : la ou la météo est bizarre
Contact :

Re: Soucis de double click

Message par nemerod256 »

auto supprimé par moi
Dernière modification par nemerod256 le lun. 17/juin/2013 17:43, modifié 1 fois.
purebasic 5.00
minecraft (en jeu (redstone))
perturbe les programme 32 et 64-bit directement dans la RAM du pc !!! (aussi se que je crée avec purebasic (rien que pour le lol ou a des fin de débogage)
bref rien que du plaisir !!!!!
Avatar de l’utilisateur
graph100
Messages : 1318
Inscription : sam. 21/mai/2005 17:50

Re: Soucis de double click

Message 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.
_________________________________________________
Mon site : CeriseCode (Attention Chantier perpétuel ;))
Avatar de l’utilisateur
nemerod256
Messages : 39
Inscription : dim. 19/févr./2012 1:51
Localisation : la ou la météo est bizarre
Contact :

Re: Soucis de double click

Message 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é
purebasic 5.00
minecraft (en jeu (redstone))
perturbe les programme 32 et 64-bit directement dans la RAM du pc !!! (aussi se que je crée avec purebasic (rien que pour le lol ou a des fin de débogage)
bref rien que du plaisir !!!!!
Golfy
Messages : 423
Inscription : mer. 25/août/2004 15:14
Localisation : Grenoble
Contact :

Re: Soucis de double click

Message 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.
Purebasic 5.30 full sous Windows XP (x86) et Win7 (64 bits), Linux Debian. Orientation réseaux, domotique
http://golfy.olympe.in/Teo-Tea/
Répondre