Seite 1 von 1
keyboard
Verfasst: 02.03.2011 21:35
von delikanli_19_82
hallo leute,
müsste ja irgendwie funktionieren, mich frustriert es. kann man irgendwie die tastaturabfragen machen, ohne initsprite oder sonstiges kram. examinekeyboard und initkeyboard wollen auch nicht so wie ich es will.
ich möchte eigentlich tastaturabfragen für eine anwendungsoberfläche haben und nicht um ein spiel zu puzzeln.
dabei geht es mir darum, das ich die tastaturdaten abfangen kann, da ich mir eigene gadgets zusammenbastelle, die je in einem imagegadget gezeichnet werden. so wird zum beispiel eine liste dargestellt. um nun zum nächsten listeneintrag zu gelangen, soll die pfeil-runter-taste und um eins nach oben zu kommen, die feil-hoch-taste verwendet werden.
wie kann ich das so hinbekommen, das ich es nicht nur unter wini, sondern auch unter mac und lini nutzen kann?
mfg

Re: keyboard
Verfasst: 02.03.2011 21:50
von Mok
Für Windows gibts
GetAsyncKeyState
Da das ganze aber plattformunabhängig sein sollte, empfehle ich dir, per AddKeyboardShortcut() alle benötigten Tasten mit einem Shortcut zu versehen. Kling komisch - ist aber nützlich, da die Tastaturabfrage dann nicht global ist, sondern nur auf dein Fenster bezogen (wenn es den Fokus hat, werden die entspr. Tasten abgefragt, sonst nicht)
Edit:
kleiner Demo-Code:
Code: Alles auswählen
Enumeration
#Shortcut_Up
#Shortcut_Dn
#Shortcut_Lf
#Shortcut_Rt
EndEnumeration
Enumeration
#Window
#ListView
EndEnumeration
OpenWindow (#Window, 100, 100, 200, 200, "Shortcuts", #PB_Window_MinimizeGadget)
ListViewGadget (#ListView, 5, 5, 190, 190)
AddKeyboardShortcut (#Window, #PB_Shortcut_Up, #Shortcut_Up)
AddKeyboardShortcut (#Window, #PB_Shortcut_Down, #Shortcut_Dn)
AddKeyboardShortcut (#Window, #PB_Shortcut_Left, #Shortcut_Lf)
AddKeyboardShortcut (#Window, #PB_Shortcut_Right, #Shortcut_Rt)
Repeat
Event = WaitWindowEvent()
Select Event
Case #PB_Event_Menu
Select EventMenu()
Case #Shortcut_Up
AddGadgetItem(#ListView,-1,"Up")
Case #Shortcut_Dn
AddGadgetItem(#ListView,-1,"Down")
Case #Shortcut_Lf
AddGadgetItem(#ListView,-1,"Left")
Case #Shortcut_Rt
AddGadgetItem(#ListView,-1,"Right")
EndSelect
Case #PB_Event_CloseWindow
Exit = 1
EndSelect
Until Exit
CloseWindow (#Window)
End
Re: keyboard
Verfasst: 02.03.2011 22:18
von delikanli_19_82
danke Mok,
genau sowas habe ich gebraucht
Re: keyboard
Verfasst: 03.03.2011 16:25
von delikanli_19_82
hallo leute, ich bins nochmal.
also dieser beispiel hier läuft unter windows prima. unter mac will er aber nicht.
nach der purebasic-hilfe sollte es auf allen unterstützen betriebssystemen laufen. so auch unter mac. geht aber nicht. keine tastaturabfrage.
woran kanns liegen?
Re: keyboard
Verfasst: 04.03.2011 09:27
von Shardik
delikanli_19_82 hat geschrieben:hallo leute, ich bins nochmal.
also dieser beispiel hier läuft unter windows prima. unter mac will er aber nicht.
nach der purebasic-hilfe sollte es auf allen unterstützen betriebssystemen laufen. so auch unter mac. geht aber nicht. keine tastaturabfrage.
woran kanns liegen?
Die Shortcuts für die Pfeiltasten funktionieren auf dem Mac zur Zeit nicht, mit anderen
Tasten funktionieren Shortcuts aber auch auf dem Mac. Dieser Fehler ist im englischen
Forum bereits unter Bug Reports gemeldet:
http://www.purebasic.fr/english/viewtop ... 24&t=35414