hideeho!
Wenn ich für ein Buttongadget das Gadgetevent normal abfrage,
bekomme ich es erst, wenn der Button wieder losgelassen wird.
ich hätte gern das ereignis "life", also, während der button gedrückt ist.
geht das irgendwie fix und einfach?
...da werd ich wohl API brauchen, hm?
Gadget-Events: Button soeben gedrückt?
-
- Beiträge: 17389
- Registriert: 10.11.2004 03:22
Gadget-Events: Button soeben gedrückt?
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Der Weise weiß, dass er ein Narr ist.
-
- Beiträge: 17389
- Registriert: 10.11.2004 03:22
gss.. das ich da nicht selber drauf gekommen bin...
habs ausprobiert, aber muss irgendwo ein käfer sein, is wohl zu spät jetzt...
ich bekommm grad ständig als (fast) jedes zweite event ne NULL...
mit dem resultat, das das aktuelle immer NULL ist..
das kann irgendwie nicht sein....
erstmal auf ohr haun, morgen werd ich den blöden fehler schon finden...
is bestimmt ein ganz bescheuerter käfer... aber ich bin auch grad müd...
auf jeden fall mal danke, Laurin...
das ist immerhin schon mal fenstergebunden,
und nicht global, wie GetAsyncKeyState_()
habs ausprobiert, aber muss irgendwo ein käfer sein, is wohl zu spät jetzt...
ich bekommm grad ständig als (fast) jedes zweite event ne NULL...
mit dem resultat, das das aktuelle immer NULL ist..
das kann irgendwie nicht sein....
erstmal auf ohr haun, morgen werd ich den blöden fehler schon finden...
Code: Alles auswählen
Dim EvList(10)
OpenWindow(0, 0,0, 800,600, #PB_Window_ScreenCentered | #PB_Window_MinimizeGadget , "buttontest" )
CreateGadgetList(WindowID(0))
ButtonGadget( 1, 0, 0, 160, 40, "a")
ButtonGadget( 2, 0, 50, 160, 40, "b")
ButtonGadget( 3, 0, 100, 160, 40, "c")
TextGadget( 10, 0,150,160,160,"")
Repeat
WinEventID = WindowEvent()
If old <> WinEventID
old = WinEventID
txt$ = ""
For n=0 To 9
EvList(n) = EvList(n+1)
txt$ + Str(EvList(n)) +Chr(13)+Chr(10)
Next
EvList(10) = old
txt$ + Str(old)
SetGadgetText(10,txt$)
EndIf
If WinEventID = #PB_Event_CloseWindow : EXIT=1 : EndIf
Until EXIT = 1
auf jeden fall mal danke, Laurin...
das ist immerhin schon mal fenstergebunden,
und nicht global, wie GetAsyncKeyState_()
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Der Weise weiß, dass er ein Narr ist.
- 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
Code: Alles auswählen
OpenWindow(0, 0,0, 800,600, #PB_Window_ScreenCentered | #PB_Window_MinimizeGadget , "buttontest" )
CreateGadgetList(WindowID(0))
ButtonGadget( 1, 0, 0, 160, 40, "a")
ButtonGadget( 2, 0, 50, 160, 40, "b")
ButtonGadget( 3, 0, 100, 160, 40, "c")
TextGadget( 10, 0,150,160,160,"")
Repeat
WinEventID = WaitWindowEvent()
If WinEventID = #WM_LBUTTONDOWN
Select GetFocus_()
Case GadgetID(1) : Debug "a wird gedrückt"
Case GadgetID(2) : Debug "b wird gedrückt"
Case GadgetID(3) : Debug "c wird gedrückt"
EndSelect
ElseIf WinEventID = #PB_Event_Gadget
Select EventGadgetID()
Case 1 : Debug "a geklickt"
Case 2 : Debug "b geklickt"
Case 3 : Debug "c geklickt"
EndSelect
ElseIf WinEventID = #PB_Event_CloseWindow
EXIT = 1
EndIf
Until EXIT = 1

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.

Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

-
- Beiträge: 17389
- Registriert: 10.11.2004 03:22
yo, dank dir ts...
#WM_LBUTTONDOWN is die 513, die ich immer bekommen habe,
und dann nach fokus trennen is logisch.
das erklärt zwar noch nicht, was für nen komischen käfer ich da eingesperrt habe
bei ner simplen elementschlange, aber das is auch egal.
jetzt muss ich noch testen, wie das ganze sich verhält bei nicht-standard aktionen.
wenn ich das verwenden will, um Flags zu setzen/löschen,
die einen kontinuierlichen Ablauf ermöglichen,
sollte es sich nicht irgendwie blockieren,
wenn ich zwischendrin das fenster wechsel oder
mit gedrücktem button das fenster verlasse oder so..
#WM_LBUTTONDOWN is die 513, die ich immer bekommen habe,
und dann nach fokus trennen is logisch.
das erklärt zwar noch nicht, was für nen komischen käfer ich da eingesperrt habe
bei ner simplen elementschlange, aber das is auch egal.
jetzt muss ich noch testen, wie das ganze sich verhält bei nicht-standard aktionen.
wenn ich das verwenden will, um Flags zu setzen/löschen,
die einen kontinuierlichen Ablauf ermöglichen,
sollte es sich nicht irgendwie blockieren,
wenn ich zwischendrin das fenster wechsel oder
mit gedrücktem button das fenster verlasse oder so..
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Der Weise weiß, dass er ein Narr ist.