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

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