Incomplete (see end of post)
For:
http://www.purearea.net/pb/CodeArchiv/G ... ktypes1.pb
Here:
Code:
; German forum:
; Author: Danilo
; Date: 02. April 2003
; Zeigt wie man Links-, Rechts-, DoppelLinks- und DoppelRechts-Klicks für das ButtonGadget() abfragt.
; Nützlich z.B. wenn man ein Popup-Menu nach RechtsClick auf einen Button anzeigen will.
; Diese Events wurden in 3.62 im Zusammenhang mit AdvancedGadgetEvents() geändert.
OpenWindow(0,0,0,170,106,"Button Events",#PB_Window_ScreenCentered|#PB_Window_SystemMenu)
CreateGadgetList(WindowID(0))
ButtonGadget(1,10,10,150,20,"Links-Klick")
ButtonGadget(2,10,32,150,20,"Rechts-Klick")
ButtonGadget(3,10,54,150,20,"Doppel-Links-Klick")
ButtonGadget(4,10,76,150,20,"Doppel-Rechts-Klick")
Procedure Message()
MessageRequester("Button "+Str(EventGadget()),GetGadgetText(EventGadget()),0)
EndProcedure
Repeat
Select WaitWindowEvent()
Case #PB_Event_CloseWindow: End
Case #PB_Event_Gadget
Select EventGadget()
Case 1
Select EventType()
Case #PB_EventType_LeftClick : Message()
EndSelect
Case 2
Select EventType()
Case #PB_EventType_RightClick : Message()
EndSelect
Case 3
Select EventType()
Case #PB_EventType_LeftDoubleClick : Message()
EndSelect
Case 4
Select EventType()
Case #PB_EventType_RightDoubleClick : Message()
EndSelect
EndSelect
EndSelect
ForEver
For:
http://www.purearea.net/pb/CodeArchiv/G ... ktypes2.pb Here:
Code:
; German forum:
; Author: CyberRun8
; Date: 03. April 2003
;Beispiel von CyberRun8
;für PureBasic 3.62
;März 2003
;-Konstanten setzen
#Window = 0
#Gadget1 = 0
#Gadget2 = 1
#Gadget3 = 2
;-Fenster mit Gadgets darstellen
If OpenWindow(#Window, 100, 150, 240, 90, "AdvancedGadgetEvents", #PB_Window_MinimizeGadget)
If CreateGadgetList(WindowID(#Window))
ButtonGadget(#Gadget1, 5, 5, 230, 20, "Doppelklick-Button")
ButtonGadget(#Gadget2, 5, 35, 230, 20, "Einfachklick-Button")
ButtonGadget(#Gadget3, 5, 65, 230, 20, "Gadget ohne Advanced-Funktion")
EndIf
EndIf
Debug "Focusangabe:"
;-Schleife
Repeat
EventID.l = WaitWindowEvent()
If EventID = #PB_Event_Gadget
Select EventGadget()
Case #Gadget1
If EventType() = #PB_EventType_Focus
Debug "Focus auf Doppelklick-Button gesetzt"
ElseIf EventType() = #PB_EventType_LeftDoubleClick
MessageRequester("Info", "Linksdoppelklick", 0)
ElseIf EventType() = #PB_EventType_RightDoubleClick
MessageRequester("Info", "Rechtsdoppelklick", 0)
EndIf
Case #Gadget2
If EventType() = #PB_EventType_LeftClick
MessageRequester("Info", "Linksklick auf Einfachklick-Button", 0)
ElseIf EventType() = #PB_EventType_RightClick
MessageRequester("Info", "Rechtsklick auf Einfachklick-Button", 0)
ElseIf EventType() = #PB_EventType_Focus
Debug "Focus auf Einfachklick-Button gesetzt"
EndIf
Case #Gadget3
;Folgende Abfrage ist ohne Funkton weil für Gadget3 die fortgeschrittene Ereignisangabe
;abgeschaltet wurde.
If EventType() = #PB_EventType_Focus
Debug "Focus auf Doppelklick-Button gesetzt"
ElseIf EventType() = #PB_EventType_LeftDoubleClick
MessageRequester("Info", "Linksdoppelklick", 0)
ElseIf EventType() = #PB_EventType_RightDoubleClick
MessageRequester("Info", "Rechtsdoppelklick", 0)
EndIf
EndSelect
EndIf
Until EventID = #PB_Event_CloseWindow
End
BUT ....
This just makes them run. It doesn't make the double-clicks, etc, work. (no AdvancedGadgetEvents(#True/#False) available)
Maybe someone smarter can fix that bit?