Anfängerfragen zum Programmieren mit PureBasic.
-
schleicher
- Beiträge: 214
- Registriert: 30.03.2014 19:57
- Computerausstattung: Purebasic 5.70
- Wohnort: 18314 Löbnitz
Beitrag
von schleicher »
Wie ein Tastendruck erkannt wird ist mir klar . z.B. key down
Code: Alles auswählen
EnableExplicit
Enumeration Window
#win
EndEnumeration
Enumeration
#w_key_down
EndEnumeration
Define event.l
Define x.i=0
#flags=#PB_Window_SystemMenu | #PB_Window_ScreenCentered
If OpenWindow(#win,0,0,300,200,"keytest",#flags)
AddKeyboardShortcut(#win,#PB_Shortcut_Down,#w_key_down) ;add shortcut key_down
Repeat
event=WaitWindowEvent()
Select event
Case #PB_Event_Menu
Select EventMenu()
Case #w_key_down
x=x+1
Debug Str(x)+" down key"
EndSelect
EndSelect
Until event=#PB_Event_CloseWindow
EndIf
Aber wie kann ich das machen, das erkannt wird, das gerade eine Taste gedrückt gehalten wird ?
Purebasic 5.51
-
NicknameFJ
- Beiträge: 324
- Registriert: 03.06.2007 14:36
- Wohnort: Von der Sonne aus gesehen der dritte Planet
Beitrag
von NicknameFJ »
Hi,
auf WIN gibt es die WIN-API Funktion GetAsyncKeyState
https://docs.microsoft.com/en-us/window ... nckeystate
mit der abgefragt werden kann ob eine Taste gerade im Moment der Abfrage gedrückt ist.
NicknameFJ
PS: Alle im Text enthaltenen Schreibfehler sind beabsichtigt und dienen der Belustigung aller
-
tft
- Beiträge: 605
- Registriert: 08.09.2004 20:18
- Computerausstattung: GTX Titan , i9 9900K , 32 GB Ram , 500 GB SSD , 3 ASUS FullHD Monitore and more
- Wohnort: Dachsen
-
Kontaktdaten:
Beitrag
von tft »
hier ein wenig Code ..... zum experimentieren. Es wird die Taste "W" geprüft.
Code: Alles auswählen
;ömm ja .. Debug aktivieren !!
Macro SwitshVar( _VarName_ )
_VarName_ = _VarName_ + 1
If _VarName_ > 1
_VarName_ = 0
EndIf
EndMacro
OpenWindow(1,0,0,200,100,"Event Test",#PB_Window_SystemMenu |#PB_Window_ScreenCentered)
ButtonGadget(1, 0, 0, 80, 20, "Play")
ButtonGadget(2, 90, 0, 80, 20, "Stop")
DisableGadget(2,1)
Debug "Bitte drücken sie eine beliebige Taste!"+Str(rr)
GetCursorPos_(st.POINT)
Debug st\x
Debug st\y
Define Schalter
Repeat
Event=WaitWindowEvent()
Select Event
Case #PB_Event_CloseWindow
Break
Case #PB_Event_Gadget
Select EventGadget()
Case 1 ; Play
DisableGadget(2,0) ; Enable the 'Stop' gadget
DisableGadget(1,1) ; Disable the 'Play' Gadget
Case 2 ; Stop
DisableGadget(1,0) ; Enable the 'Play' gadget
DisableGadget(2,1) ; Disable the 'Stop' Gadget
EndSelect
Case #WM_MOUSEWHEEL
If (EventwParam() >> 16) & $8000
Debug "Down"
Else
Debug "Up"
EndIf
Case #WM_MOUSEMOVE
Debug "#WM_MOUSEMOVEw " + Str(EventwParam())
Debug "#WM_MOUSEMOVEl " + StrF(EventlParam())
Case #WM_LBUTTONDBLCLK
Debug "#WM_LBUTTONDBLCLK " + Str(EventwParam())
Debug "#WM_LBUTTONDBLCLK " + Str(EventlParam())
Case #WM_LBUTTONDOWN
Debug "#WM_LBUTTONDOWN " + Str(EventwParam())
Debug "#WM_LBUTTONDOWN " + Str(EventlParam())
Case #WM_LBUTTONUP
Debug "#WM_LBUTTONUP " + Str(EventwParam())
Debug "#WM_LBUTTONUP " + Str(EventlParam())
Case #WM_RBUTTONDOWN
Debug "#WM_RBUTTONDOWN " + Str(EventwParam())
Debug "#WM_RBUTTONDOWN " + Str(EventlParam())
Case #WM_RBUTTONUP
Debug "#WM_RBUTTONUP" + Str(EventwParam())
Debug "#WM_RBUTTONUP" + Str(EventlParam())
Case #WM_MBUTTONDBLCLK
Debug "#WM_MBUTTONDBLCLK " + Str(EventwParam())
Debug "#WM_MBUTTONDBLCLK " + Str(EventlParam())
Case #WM_MBUTTONDOWN
Debug "#WM_MBUTTONDOWN " + Str(EventwParam())
Debug "#WM_MBUTTONDOWN " + Str(EventlParam())
Case #WM_MBUTTONUP
Debug "#WM_MBUTTONUP " + Str(EventwParam())
Debug "#WM_MBUTTONUP " + Str(EventlParam())
Case #WM_NCMOUSEMOVE
Debug "#WM_NCMOUSEMOVE " + Str(EventwParam())
Debug "#WM_NCMOUSEMOVE " + Str(EventlParam())
Case #WM_NCLBUTTONDBLCLK
Debug "#WM_NCLBUTTONDBLCLK " + Str(EventwParam())
Debug "#WM_NCLBUTTONDBLCLK " + Str(EventlParam())
Case #WM_ACTIVATE
Debug "#WM_ACTIVATE " +Str(EventwParam())
Debug "#WM_ACTIVATE " +Str(EventlParam())
Case #WM_CHAR
Debug "#CHAR w: " + Chr(EventwParam())
Debug "#CHAR l: " + Str(EventlParam())
Case #WM_DEADCHAR
Debug "#DEADCHAR: " + Str(EventwParam())
Case #WM_KEYDOWN
Debug "#KEYDOWN(w): " + Str(EventwParam())
Debug "#KEYDOWN(l): " + Str(EventlParam())
SwitshVar( schalter )
Case #WM_KEYUP
Debug "#KEYUP(w): " + Str(EventwParam())
Debug "#KEYUP(l): " + Str(EventlParam())
SwitshVar( schalter )
Case #WM_SYSCHAR
Debug "#SYSCHAR: " + Str(EventwParam())
Case #WM_SYSDEADCHAR
Debug "#SYDEADSCHAR: " + Str(EventwParam())
Case #WM_SYSKEYDOWN
Debug "#SYSKEYDOWN: " + Str(EventwParam())
Case #WM_SYSKEYUP
Debug "#SYSKEYUP: " + Str(EventwParam())
Default
Debug Event
EndSelect
; -----------------------------------------------
If GetAsyncKeyState_(#VK_W) <> 0
Debug "Key W it is presset in this moment"
EndIf
;----------------------------------------------
GetCursorPos_(st.POINT)
Debug st\x
Debug st\y
Debug "Schalter = "+Str(schalter)
Debug "-----------------"
ForEver
End
gruss TFT