Seite 1 von 1

Millisekunden nach mouse_down

Verfasst: 18.05.2011 22:34
von delikanli_19_82
hallo leute,

es geht bei dieser frage um purebasic 4.60beta3 im allgemeinen. suche nach einer os-indenpenden-lösung.

da der neue canvas-gadget keinen double-click unterstützt, dachte ich mir, das ich mittels millisekunden-check zwischen zwei hintereinander folgenden *buttonUp's den double-click künstlich dennoch realisieren konnte.

dazu habe ich es mit dem elapsedmilliseconds versucht. der hat bei mir nicht den erwünschten effekt erbracht.

hat jemand einen vorschlag?

mfg

kurt

Re: Millisekunden nach mouse_down

Verfasst: 18.05.2011 23:17
von TomS
Ist ja interessant. ElapsedMilliseconds alleine tut auch nichts. Da muss man schon einen Code drum herum schreiben.
Also entweder postest du jetzt mal deinen Code, der nicht funktioniert, oder du wartest bis dir jemand dein Programm für dich schreibt :roll:

Re: Millisekunden nach mouse_down

Verfasst: 18.05.2011 23:21
von delikanli_19_82
weil es nicht funkt habe ich es gelöscht. daher kein code. ich wollte eigentlich einen neuen ansatz als vorschlag erhalten.

naja.. muss schauen, ob ich eine andere lösung finde.

trotzdem danke...

mfg

kurt

Re: Millisekunden nach mouse_down

Verfasst: 18.05.2011 23:27
von TomS
Systemunabhängig geht eigentlich eh nicht, leider (zumindest nicht ohne Linux/Mac-Api)
Zumindest unter Windows kann man einstellen wie viel Zeit zwischen den 2 Klicks maximal vergehen kann.
Diesen Wert müsste man eigentlich aus der Registry auslesen.
Anderenfalls kommen ältere Leute nicht mit, da sie langsame Doppelklicks gewöhnt sind.
Und wenn man das Interval höher stellt, nervt es nur die Leute, die auch mal schnell 2 einzelne Klicks machen (je nach UI).

Also hier der Code mit einem von dir festgelegten Interval in ms.

Code: Alles auswählen

Define timestamp.i

#dblClickTime = 500

hWnd = OpenWindow(#PB_Any, 0, 0, 800, 600, "Fenster", #PB_Window_ScreenCentered|#PB_Window_MinimizeGadget)

CanvasGadget(0, 0, 0, 800, 600)

Repeat
	event = WaitWindowEvent(20)
	If event = #PB_Event_Gadget
		If EventGadget() = 0
			If EventType() = #PB_EventType_LeftButtonUp			
				
				If ElapsedMilliseconds() - timestamp <= #dblClickTime
					Debug "Doppelklick"
				Else 
					Debug "Einzelklick"
				EndIf 
				timestamp = ElapsedMilliseconds()
				
			EndIf 
		EndIf 
	EndIf 
		
Until event = #PB_Event_CloseWindow
End

Re: Millisekunden nach mouse_down

Verfasst: 19.05.2011 01:58
von ts-soft
TomS hat geschrieben:Zumindest unter Windows kann man einstellen wie viel Zeit zwischen den 2 Klicks maximal vergehen kann. Diesen Wert müsste man eigentlich aus der Registry auslesen.

Code: Alles auswählen

GetDoubleClickTime_()
Gruß
Thomas

Re: Millisekunden nach mouse_down

Verfasst: 19.05.2011 11:37
von TomS
Achja. Da war was.
Danke.
Ist auf meinem System sogar auch 500.

Re: Millisekunden nach mouse_down

Verfasst: 19.05.2011 11:45
von STARGÅTE
500 :o

also bei mir habe ich Doppelklcik so kurz wie möglich eingestellt. Derzeit 200ms.

Liegt vermutlich daran, das ich nicht immer 500ms warten will, eh der nächste klick nur als einfachklick gewertet wird.
(zB beim ändern von Dateinamen)

Re: Millisekunden nach mouse_down

Verfasst: 19.05.2011 12:44
von delikanli_19_82
vielen dank euch allen für die info :-)

mfg

kurt