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