Aktuelle Zeit: 05.07.2020 18:38

Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]




Ein neues Thema erstellen Auf das Thema antworten  [ 6 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: Wie unterscheidet man Linksklick von Doppellinksklick?
BeitragVerfasst: 29.09.2019 11:44 
Offline

Registriert: 06.03.2019 21:52
Hallo Allerseits!

in der PB-Hilfe ist ein Beispiel zum Thema EventType(), in dem LinksKlick und Doppellinksklick abgefragt werden, ungefähr so:

Code:
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?

_________________
Der beste Fisch ist der Schnitzel


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Frage: Wie unterscheidet man inksklick von Doppellinkskl
BeitragVerfasst: 29.09.2019 13:57 
Offline
Benutzeravatar

Registriert: 24.11.2004 13:12
Wohnort: Germany
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:
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

_________________
Alles ist möglich, fragt sich nur wie...
Projekte ThreadToGUI / EventDesigner V3 / OOP-BaseClass-Modul / OPC-Helper DLL
PB v3.30 / v5.4x - OS Mac Mini OSX 10.xx / Window 10 Pro. (X64) /Window 7 Pro. (X64) / Window XP Pro. (X86) / Ubuntu 14.04
Downloads auf My Webspace


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Frage: Wie unterscheidet man inksklick von Doppellinkskl
BeitragVerfasst: 29.09.2019 15:27 
Offline
Admin
Benutzeravatar

Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
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:
Code:
Debug GetDoubleClickTime_()

(nur für Windows)

_________________
BildBildBildBild BildBild


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Frage: Wie unterscheidet man inksklick von Doppellinkskl
BeitragVerfasst: 29.09.2019 15:46 
Offline
Kommando SG1
Benutzeravatar

Registriert: 01.11.2005 13:34
Wohnort: Glienicke
Unterscheidet sich das von DoubleClickTime()?
Code:
Debug DoubleClickTime()
Debug GetDoubleClickTime_()

Zitat:
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?

_________________
Bild
 
BildBildBild


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Frage: Wie unterscheidet man inksklick von Doppellinkskl
BeitragVerfasst: 29.09.2019 15:58 
Offline
Admin
Benutzeravatar

Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
STARGÅTE hat geschrieben:
Unterscheidet sich das von DoubleClickTime()?
Code:
Debug DoubleClickTime()
Debug GetDoubleClickTime_()

Zitat:
500
500

Oh sry, ich hab das nicht gesehen, dass DoubleClickTime() verwendet wird. Dann ist alles gut.

_________________
BildBildBildBild BildBild


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Frage: Wie unterscheidet man inksklick von Doppellinkskl
BeitragVerfasst: 29.09.2019 18:15 
Offline
Benutzeravatar

Registriert: 25.01.2005 12:19
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 :)


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 6 Beiträge ] 

Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 7 Gäste


Sie dürfen keine neuen Themen in diesem Forum erstellen.
Sie dürfen keine Antworten zu Themen in diesem Forum erstellen.
Sie dürfen Ihre Beiträge in diesem Forum nicht ändern.
Sie dürfen Ihre Beiträge in diesem Forum nicht löschen.

Suche nach:
Gehe zu:  

 


Powered by phpBB © 2008 phpBB Group | Deutsche Übersetzung durch phpBB.de
subSilver+ theme by Canver Software, sponsor Sanal Modifiye