Unterscheidung LeftClick und LeftDoubleClick bei EventType()

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
RSBasic
Admin
Beiträge: 8047
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

Re: Unterscheidung LeftClick und LeftDoubleClick bei EventTy

Beitrag von RSBasic »

+1
Allgemeine Windows-Einstellungen wie die Doppelklickzeit der Maus sollen von Anwendungen nicht verändert werden. Das macht nur der Benutzer selbst in der Systemsteuerung.
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Re: Unterscheidung LeftClick und LeftDoubleClick bei EventTy

Beitrag von ts-soft »

Gerade die Doppelclickzeit sollte man nicht verändern. Ist meist eine der ersten Tätigkeiten von Einsteigern/Ungeübten usw. in der
Systemsteuerung um ein Doppelclick zu ermöglichen. Wenn das jetzt jemand anders verstellt, wäre das schon sehr übel.
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Benutzeravatar
Danilo
-= Anfänger =-
Beiträge: 2284
Registriert: 29.08.2004 03:07

Re: Unterscheidung LeftClick und LeftDoubleClick bei EventTy

Beitrag von Danilo »

Man kann das auch selbst machen, ohne es im System zu verstellen.

Code: Alles auswählen

#DblClickTime = 250

Global clickStart = ElapsedMilliseconds()

Procedure OnClickTimer()
    RemoveWindowTimer(0,1)
    Debug "Single Click"
EndProcedure

Procedure OnClick()
    If (clickStart + #DblClickTime) >= ElapsedMilliseconds()
        RemoveWindowTimer(0,1)
        Debug "Double Click"
        ProcedureReturn
    EndIf
    clickStart = ElapsedMilliseconds()
    AddWindowTimer(0,1,#DblClickTime+20)
EndProcedure

If OpenWindow(0, 0, 0, 300, 200, "ListIcon Example", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
    ListIconGadget(0, 5, 5, 290, 190, "Name", 100, #PB_ListIcon_FullRowSelect | #PB_ListIcon_AlwaysShowSelection)
    AddGadgetColumn(0, 1, "Address", 250)
    AddGadgetItem(0, -1, "Harry Rannit"+Chr(10)+"12 Parliament Way, Battle Street, By the Bay")
    AddGadgetItem(0, -1, "Ginger Brokeit"+Chr(10)+"130 PureBasic Road, BigTown, CodeCity")
    
    BindGadgetEvent(0, @OnClick(), #PB_EventType_LeftClick)
    
    BindEvent(#PB_Event_Timer,@OnClickTimer(),0,1)
    
    Repeat : Until WaitWindowEvent() = #PB_Event_CloseWindow
EndIf
Ich finde das aber nicht empfehlenswert, da es die gewünschte Doppelklickzeit des Benutzers ignoriert.
Es ist besser sich Grundsätzlich etwas einfallen zu lassen, so dass Einzel- und Doppelklick sich ergänzen
und nicht einander ausschließen.
cya,
...Danilo
"Ein Genie besteht zu 10% aus Inspiration und zu 90% aus Transpiration" - Max Planck
Antworten