ich versuche einen PathRequester im StringGadget (zu finden im Preferences Untermenu!) mit #PB_EventType_Focus. (#PB_Event_LeftDoubleClick funktioniert leider gar nicht).
Ich lande dann in einem PathRequester-Loop.
Wie macht manns richtig ?
Code: Alles auswählen
Procedure Preferences()
If OpenWindow(2, #PB_Ignore, #PB_Ignore, 600, 360," Preferences", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
AddKeyboardShortcut(2, #PB_Shortcut_Escape, 890)
If UseGadgetList(WindowID(2))
TextGadget(81, 40, 50, 200, 25,"Path:")
Text_Path = StringGadget(82, 100, 50, 360, 20, "")
EndIf
EndIf
EndProcedure
If OpenWindow(0, 0, 0, 500, 520, " test", #PB_Window_SystemMenu|#PB_Window_SizeGadget|#PB_Window_ScreenCentered)
;Tastaturkeys
AddKeyboardShortcut(0, #PB_Shortcut_Escape, 130)
AddKeyboardShortcut(0, #PB_Shortcut_Control | #PB_Shortcut_O, 145)
AddKeyboardShortcut(0, #PB_Shortcut_Control | #PB_Shortcut_P, 146)
If UseGadgetList(0) ;Buttons und Ausgabefeld
If CreateStatusBar(0, WindowID(0))
AddStatusBarField(#PB_Ignore)
EndIf
StatusBarText(0, 0, "", #PB_StatusBar_BorderLess)
If CreateMenu(0, WindowID(0)) ;Menüeinträge
MenuTitle("Menu")
MenuItem( 5, "&Preferences" + Chr(9) + "Strg+P")
MenuBar()
MenuItem( 7, "&Exit" + Chr(9) + "Esc")
EndIf
EndIf
Repeat
Select WaitWindowEvent()
Case #PB_Event_CloseWindow
Quit = 1
Case #PB_Event_Menu ;Tastaturereignisse
Select EventMenu()
Case 5,146 : Preferences()
Case 7,130 : Quit = 1
Case 222,890,891,892 : CloseWindow(2)
Case 990,991 : CloseWindow(3)
EndSelect
Case #PB_Event_Gadget ;Mauseereignisse
Select EventGadget()
Case 82
Select EventType()
Case #PB_EventType_Focus
BatchPath$ = PathRequester("Choose a folder.", Path$)
SetGadgetText(82, BatchPath$)
EndSelect
EndSelect
EndSelect
Until Quit = 1
EndIf