Ich habs mit verschiedenen Ereignissen versucht. Entweder es gibt direkt Synchronisationsprobleme, Cursor ist noch im vorhergehenden Feld oder es funktioniert ne Weile und dann wieder nicht mehr.
Sieht nicht so aus, als wenns auf dem Weg zu einer sicheren Lösung wäre.
Code: Alles auswählen
Enumeration
#String_1 : #String_2
EndEnumeration
Procedure Open_Window()
If OpenWindow(0, 0, 0, 250, 60, "Shortcut-Test", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
If CreateGadgetList(WindowID(0))
StringGadget(#String_1, 20, 20, 100, 20, "String1")
EditorGadget(#String_2, 130,20, 100, 20)
EndIf
EndIf
EndProcedure
Open_Window()
AddKeyboardShortcut(0, #PB_Shortcut_Tab, 100)
SetActiveGadget(#String_1)
Repeat
Select WaitWindowEvent()
Case #PB_Event_Menu
Select EventMenu()
Case 100 ; Tab
Select GetActiveGadget()
Case #String_1
SetActiveGadget(#String_2)
EndSelect
EndSelect
Case #WM_CHAR
If EventwParam()=9 ; Tab
If GetActiveGadget()=#String_2
SetGadgetText(#String_2,ReplaceString(GetGadgetText(#String_2), Chr(9), ""))
SetActiveGadget(#String_1)
EndIf
EndIf
Case #PB_Event_CloseWindow
End
EndSelect
ForEver