Seite 1 von 1
Wie unterscheidet man Linksklick von Doppellinksklick?
Verfasst: 29.09.2019 11:44
von bin_neu_hier
Hallo Allerseits!
in der PB-Hilfe ist ein Beispiel zum Thema EventType(), in dem LinksKlick und Doppellinksklick abgefragt werden, ungefähr so:
Code: Alles auswählen
Select EventType()
Case #PB_EventType_LeftClick
debug "links"
Case #PB_EventType_LeftDoubleClick
debug "doppellinks"
Endselect
Da ja jeder Doppelklick mit einem Einfachklick beginnt, gibt Debug zuerst "links" und dann "dopppellinks" aus. Wie unterscheidet man die Klickarten "sauber" voneinander? Ein einfacher Linksklick ist ja erst dann einer, wenn nicht innerhalb soundsovieler millisekunden kein zweiter linksklick folgt. Wie unterscheidet man das?
Re: Frage: Wie unterscheidet man inksklick von Doppellinkskl
Verfasst: 29.09.2019 13:57
von mk-soft
Eigentlich gar nicht
Das Problem ist das man zu lange warten muss um den unterschied zwischen LeftClick und LeftDoubleClick zu unterscheiden.
Somit dauert es zu lange um auf einem LeftClick zu reagieren.
Code: Alles auswählen
If OpenWindow(0, 0, 0, 270, 140, "ListViewGadget", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
ListViewGadget(0, 10, 10, 250, 120)
For a = 1 To 12
AddGadgetItem (0, -1, "Item " + Str(a) + " of the Listview") ; definieren des Listview-Inhalts
Next
Repeat
Select WaitWindowEvent()
Case #PB_Event_CloseWindow
Break
Case #PB_Event_Gadget
Select EventGadget()
Case 0
Select EventType()
Case #PB_EventType_LeftClick
;Debug "LeftClick"
AddWindowTimer(0, 1000, DoubleClickTime())
Case #PB_EventType_LeftDoubleClick
Debug "LeftDoubleClick"
RemoveWindowTimer(0, 1000)
EndSelect
EndSelect
Case #PB_Event_Timer
Select EventTimer()
Case 1000
Debug "Delayed LeftClick"
RemoveWindowTimer(0, 1000)
EndSelect
EndSelect
ForEver
EndIf
Re: Frage: Wie unterscheidet man inksklick von Doppellinkskl
Verfasst: 29.09.2019 15:27
von RSBasic
Da die Doppelklickzeit je Windows-Konfiguration auch mal unterschiedlich sein kann, wenn der Benutzer das explizit eingestellt hat, ist es empfehlenswert, die echte Zeit zu ermitteln:
(nur für Windows)
Re: Frage: Wie unterscheidet man inksklick von Doppellinkskl
Verfasst: 29.09.2019 15:46
von STARGÅTE
Unterscheidet sich das von DoubleClickTime()?
500
500
Zu der aussage von
bin_neu_hier:
"Ein einfacher Linksklick ist ja erst dann einer, wenn nicht innerhalb soundsovieler millisekunden kein zweiter linksklick folgt."
Ist das wirklich so?
Ich hätte gesagt, LeftClick ist definiert als: Down + Up (egal was davor/danach passiert)
LeftDoubleClick ist definiert als: Down + Up + Down (also kein Up mehr nötig)
Die Frage ist auch, in welcher Situation soll ein Doppelklick
keinen einfachen Klick auslösen?
Re: Frage: Wie unterscheidet man inksklick von Doppellinkskl
Verfasst: 29.09.2019 15:58
von RSBasic
STARGÅTE hat geschrieben:Unterscheidet sich das von DoubleClickTime()?
500
500
Oh sry, ich hab das nicht gesehen, dass DoubleClickTime() verwendet wird. Dann ist alles gut.
Re: Frage: Wie unterscheidet man inksklick von Doppellinkskl
Verfasst: 29.09.2019 18:15
von Shardik
Ich habe im Mai 2011 in
diesem Beitrag im englischen Forum "Feature Requests and Wishlists" eine Multiplattform-Version von GetDoubleClick() gezeigt. Im August 2011 hat freak im gleichen Thread bekannt gegeben, dass er die GetDoubleClick()-Funktion nativ in PureBasic implementiert hat:
freak hat geschrieben:I added the double click events and a native DoubleClickTime() function as well