Frage zu Openwindow() und ParentWindowID
Frage zu Openwindow() und ParentWindowID
Ich hab da mal eine Frage zu ParentWindowID bei Openwindow(). Hat dieser Parameter noch irgend eine andere Funktion, außer damit das Fenster mit #PB_Window_WindowCentered positionieren zu können? Oder gibt es noch andere Dinge wofür das sich als nützlich erweisen könnte?
Nein, ich habe die Suche nicht benutzt, und deshalb auch nichts dazu gefunden... 

Die Parent-Windows sind gut für Tool-Fenster usw., da sie
nicht hinter das Parent kommen können.
Klick mal das HauptFenster an, wenn das Child es halb
überdeckt - das Child bleibt immer vor dem Parent.
Für Dialoge, OptionsWindows, ToolWindows, ... kann man
eig. überall gebrauchen.
nicht hinter das Parent kommen können.
Klick mal das HauptFenster an, wenn das Child es halb
überdeckt - das Child bleibt immer vor dem Parent.
Für Dialoge, OptionsWindows, ToolWindows, ... kann man
eig. überall gebrauchen.
cya,
...Danilo
"Ein Genie besteht zu 10% aus Inspiration und zu 90% aus Transpiration" - Max Planck
...Danilo
"Ein Genie besteht zu 10% aus Inspiration und zu 90% aus Transpiration" - Max Planck
jep, ist eine feine sache.
hier hast du noch ein beispiel, damit du das prinzip besser verstehst:
c ya,
nco2k
hier hast du noch ein beispiel, damit du das prinzip besser verstehst:
Code: Alles auswählen
;- Window Constants
Enumeration
#Window_Main
#Window_Child
EndEnumeration
;- Shortcut Constants
Enumeration
#Shortcut_Escape
#Shortcut_Return
EndEnumeration
;- Gadget Constants
Enumeration
#Button_Click
#Button_Quit
#Button_Ok
EndEnumeration
;- Close Child Window
Procedure Close_Window_Child()
If WindowID(#Window_Child)
CloseWindow(#Window_Child)
EndIf
EnableWindow_(WindowID(#Window_Main), #True)
UseWindow(#Window_Main)
ActivateWindow()
EndProcedure
;- Close Main Window
Procedure Close_Window_Main()
If WindowID(#Window_Main)
End
EndIf
EndProcedure
;- Open Child Window
Procedure Open_Window_Child()
EnableWindow_(WindowID(#Window_Main), #False)
If OpenWindow(#Window_Child, 0, 0, 300, 200, #PB_Window_SystemMenu | #PB_Window_MinimizeGadget | #PB_Window_MaximizeGadget | #PB_Window_SizeGadget | #PB_Window_TitleBar | #PB_Window_WindowCentered, "Child", WindowID(#Window_Main))
If CreateGadgetList(WindowID(#Window_Child))
ButtonGadget(#Button_Ok, 20, 20, 100, 25, "Ok", #PB_Button_Default)
EndIf
AddKeyboardShortcut(#Window_Child, #PB_Shortcut_Escape, #Shortcut_Escape)
AddKeyboardShortcut(#Window_Child, #PB_Shortcut_Return, #Shortcut_Return)
Else
MessageRequester("", "Error", #MB_ICONERROR)
End
EndIf
UseWindow(#Window_Child)
ActivateWindow()
EndProcedure
;- Open Main Window
Procedure Open_Window_Main()
If OpenWindow(#Window_Main, 0, 0, 400, 300, #PB_Window_SystemMenu | #PB_Window_MinimizeGadget | #PB_Window_MaximizeGadget | #PB_Window_SizeGadget | #PB_Window_TitleBar | #PB_Window_ScreenCentered, "Main")
If CreateGadgetList(WindowID(#Window_Main))
ButtonGadget(#Button_Click, 20, 20, 100, 25, "Click Me!")
ButtonGadget(#Button_Quit, 20, 70, 100, 25, "Quit")
EndIf
AddKeyboardShortcut(#Window_Main, #PB_Shortcut_Escape, #Shortcut_Escape)
Else
MessageRequester("", "Error", #MB_ICONERROR)
End
EndIf
UseWindow(#Window_Main)
ActivateWindow()
EndProcedure
;- Start
Open_Window_Main()
;- Event Child Window
Procedure Event_Window_Child(EventID)
Select EventID
Case #PB_Event_Menu
Select EventMenuID()
Case #Shortcut_Escape
Close_Window_Child()
Case #Shortcut_Return
Close_Window_Child()
EndSelect
Case #PB_Event_Gadget
Select EventGadgetID()
Case #Button_Ok
Close_Window_Child()
EndSelect
Case #PB_Event_CloseWindow
Close_Window_Child()
EndSelect
EndProcedure
;- Event Main Window
Procedure Event_Window_Main(EventID)
Select EventID
Case #PB_Event_Menu
Select EventMenuID()
Case #Shortcut_Escape
Close_Window_Main()
Case #Shortcut_Return
Close_Window_Main()
EndSelect
Case #PB_Event_Gadget
Select EventGadgetID()
Case #Button_Click
Open_Window_Child()
Case #Button_Quit
Close_Window_Main()
EndSelect
Case #PB_Event_CloseWindow
Close_Window_Main()
EndSelect
EndProcedure
;- Event Loop
Repeat
EventID.l = WaitWindowEvent()
If EventID
Select EventWindowID()
Case #Window_Main
Event_Window_Main(EventID)
Case #Window_Child
Event_Window_Child(EventID)
EndSelect
EndIf
ForEver
End
nco2k
Das gefällt mir, ich dachte schon, dass ich mich selbst darum kümmern müsste. Hatte das auch mal mit zwei Fenstern und Parent probiert, aber das ist mir irgendwie entgangen.Danilo hat geschrieben:Die Parent-Windows sind gut für Tool-Fenster usw., da sie
nicht hinter das Parent kommen können.
Danke, auch für den Beispielcode!
Nein, ich habe die Suche nicht benutzt, und deshalb auch nichts dazu gefunden... 
