Herausfinden welche Taste gedrückt wurde?

Anfängerfragen zum Programmieren mit PureBasic.
TheNewOne
Beiträge: 60
Registriert: 06.04.2011 14:33

Herausfinden welche Taste gedrückt wurde?

Beitrag von TheNewOne »

Hallo zusammen,
in meinem kleinen Programm möchte ich herausfinden welche Taste der Anwender gedrückt hat. Mit Hilfe von KeyboardPushed(#PB_Key_All) kann ich ja herausfinden ob eine Taste gedrückt wurde, weiß aber nicht welche. Muss ich jetzt für jede einzelne Taste KeyboardPushed(#PB_Key_A) usw. eingeben, oder kann man das auch weniger aufwendig lösen? Wäre Super wenn mir jemand helfen könnte.
Win7, 64bit, PB 4.60
Benutzeravatar
STARGÅTE
Kommando SG1
Beiträge: 7028
Registriert: 01.11.2005 13:34
Wohnort: Glienicke
Kontaktdaten:

Re: Herausfinden welche Taste gedrückt wurde?

Beitrag von STARGÅTE »

Anhand von KeyboardPushed() vermute ich du möchtest in einem Screen arbeiten?
Dann kannst du KeyboardInkey() nutzen.

Code: Alles auswählen

InitSprite()
InitKeyboard()

Enumeration
	#Window
EndEnumeration

OpenWindow(#Window, 0, 0, 800, 600, "ScreenTitle", #PB_Window_SystemMenu|#PB_Window_ScreenCentered)
OpenWindowedScreen(WindowID(#Window), 0, 0, WindowWidth(#Window), WindowHeight(#Window), 0, 0, 0)

Define Key.s

Repeat
	
	Repeat
		
		Select WindowEvent()
			Case #PB_Event_CloseWindow
				End
			Case #PB_Event_None
				Break
		EndSelect
		
	ForEver
	
	
	ClearScreen(0)
	
	If ExamineKeyboard()
		Key = KeyboardInkey()
		If Key
			Debug Key
		EndIf
	EndIf
	
	FlipBuffers()
	
ForEver
PB 6.01 ― Win 10, 21H2 ― Ryzen 9 3900X, 32 GB ― NVIDIA GeForce RTX 3080 ― Vivaldi 6.0 ― www.unionbytes.de
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
TheNewOne
Beiträge: 60
Registriert: 06.04.2011 14:33

Re: Herausfinden welche Taste gedrückt wurde?

Beitrag von TheNewOne »

Danke, genau das habe ich gesucht. :D
Win7, 64bit, PB 4.60
Benutzeravatar
Chimorin
Beiträge: 451
Registriert: 30.01.2013 16:11
Computerausstattung: MSI GTX 660 OC mit TwinFrozr III
6Gb DDR 3 RAM
AMD Phenom II X4 B55 @ 3,6GHz
Windows 7 Home Premium 64-bit

Re: Herausfinden welche Taste gedrückt wurde?

Beitrag von Chimorin »

Schau dir das mal an:
Ist nicht mehr der Originalcode, ich habe ein bisschen rumgespielt :D

Code: Alles auswählen

; English forum: http://purebasic.myforums.net/viewtopic.php?t=7066&highlight=
; Author: AngelSoul
; Date: 30. July 2003


; catch keys in a form....

Main = OpenWindow(1, 0, 0, 320, 200, "My Form", #PB_Window_MinimizeGadget)

Repeat
  Event=WindowEvent()
  
  If Event=256 ;Keypress detected
    kk = EventwParam() ;Value of the key in ascii
    Select kk
      Case 27
        End
        
      Case 65   ;A
        Beep_(1000, 100)
                
      Case 83   ;S
        Beep_(2000 ,100)
        
      Case 68   ;D
        Beep_(3000, 100)
        
      Case 70   ;F
        Beep_(4000, 100)
        
      Case 71   ;G
        Beep_(5000, 100)
        
      Case 72   ;H
        Beep_(6000, 100)
        
      Case 74   ;J
        Beep_(7000, 100)
        
      Case 75   ;K
        Beep_(8000, 100)
        
      Case 76   ;L
        Beep_(9000, 100)
        
      Case 89   ;Y
        Beep_(100, 100)
        
      Case 32   ;Leer
        Beep_(14000, 1000)
    EndSelect
    
  EndIf
  
  Delay(1) ;don't take all CPU power
ForEver
Bild

- formerly known as Bananenfreak -
Antworten