Seite 1 von 1

Hotkey auf Button legen?

Verfasst: 31.05.2007 13:16
von Kurzer
Hallo zusammen,

ich habe ein Fenster mit Buttons drin.
Nun möchte ich die Funktion, die hinter einem Button liegt, auch mit der Taste F8 ausführen.

Mein Ansatz innerhalb des Eventloops ist dieser:

Code: Alles auswählen

      If Event = #PB_Event_Gadget Or Event = #WM_KEYUP
        If GadgetID = #Button_GO Or (Event = #WM_KEYUP And EventwParam = #VK_F8)
          Debug "Klappt!"
        EndIf
      EndIf
Geht sowas auch eleganter? Also kann man die Taste F8 dem Button schon direkt zuordnen so daß man nur noch auf #PB_Event_Gadget reagieren muß?

Markus

Verfasst: 31.05.2007 14:03
von HeX0R
AddKeyboardShortcut()

Verfasst: 31.05.2007 14:15
von C4rizz
Machs mit Shortcuts.
Die reagieren denn zwar auf Menuevent aber das is ja net weiter wild oder?

Beispiel:

Code: Alles auswählen

OpenWindow(1,0,0,200,200,"Test",#PB_Window_SystemMenu|#PB_Window_ScreenCentered)
  CreateGadgetList(WindowID(1))
    ButtonGadget(1,10,10,40,25,"Press",0)
AddKeyboardShortcut(1,#PB_Shortcut_E,1) ;<---Wenn E gedrückt wurde dann Event

Repeat
event = WaitWindowEvent()
If event = #PB_Event_Gadget
  Select EventGadget()
    Case 1
      MessageRequester("Test","Button wurde gedrückt",0)
  EndSelect
EndIf
If event = #PB_Event_Menu
  Select EventMenu()
    Case 1
      MessageRequester("Test","Button wurde gedrückt",0)
  EndSelect
EndIf
Until event = #PB_Event_CloseWindow
So hoffe das hilft :allright:

Verfasst: 31.05.2007 16:07
von Kurzer
Mit Shortcut und Menu_Event hatte ich es vorher...
Aber das ist doch viel unübersichtlicher und aufwändiger.

So... (siehe erstes posting)... habe ich wenigstens alles in einer Event-Routine.

Ich dachte nur, daß es soetwas wie diesen Menu_Event (Shortcut) auch für Button-Events gibt. Aber wohl eher nicht. :)

Markus

Verfasst: 31.05.2007 21:27
von hjbremer
so vielleicht ?

Code: Alles auswählen

#Window_nr = 0
#Button_GO = 1

OpenWindow(#Window_nr,0,0,200,200,"Test",#PB_Window_SystemMenu|#PB_Window_ScreenCentered) 
  CreateGadgetList(WindowID(#Window_nr)) 
    ButtonGadget(#Button_GO,10,10,40,25,"Press",0) 

AddKeyboardShortcut(#Window_nr,#PB_Shortcut_Alt | #PB_Shortcut_F8,#Button_GO) ;<-Wenn ALT+F8 gedrückt, dann Event 

Repeat 

    event = WaitWindowEvent() 
    
    If event = #PB_Event_Gadget Or event = #PB_Event_Menu
      
        Select EventGadget() 

          Case #Button_GO 
            MessageRequester("Test","Button wurde gedrückt",0) 

        EndSelect 
    
    EndIf 

Until event = #PB_Event_CloseWindow