es ist außerdem die Frage, ob du überhaupt childs benötigst.
mehrere fenster kann man auch ohne child/parent lösen.
Code: Alles auswählen
;*********************************************************
;*** MoreWindows.pb
;***
;*** Example for use of EventWindow()
;*** to handle multiple Windows
;*** without child/parent
;***
;*** Dec.22, 2006 Kaeru Gaman
;***
;*** PB Ver 4.02 Win
;*********************************************************
EnableExplicit
;*************************************
Enumeration ;Windows
#Win_Main
#Win_Sub1
#Win_Sub2
#Win_Sub3
#Win_Sub4
EndEnumeration
;*************************************
Enumeration ;Gadgets
#Main_But_LaunchSub1
#Main_But_LaunchSub2
#Main_But_LaunchSub3
#Main_Txt_Display
#Sub1_But_TestBeep
#Sub2_But_TestBeep
#Sub3_But_LaunchSub4
#Sub4_Opt_Text1
#Sub4_Opt_Text2
#Sub4_Opt_Text3
EndEnumeration
;*************************************
Procedure OpenSub1()
OpenWindow(#Win_Sub1, -1, -1, 200,150,"Sub1",#PB_Window_ScreenCentered | #PB_Window_SystemMenu )
CreateGadgetList(WindowID(1))
ButtonGadget(#Sub1_But_TestBeep,10,10,60,20,"Beep Deep")
EndProcedure
;*************************************
Procedure OpenSub2()
OpenWindow(#Win_Sub2, -1, -1, 200,150,"Sub2",#PB_Window_ScreenCentered | #PB_Window_SystemMenu )
CreateGadgetList(WindowID(2))
ButtonGadget(#Sub2_But_TestBeep,10,10,60,20,"Beep High")
EndProcedure
;*************************************
Procedure OpenSub3()
OpenWindow(#Win_Sub3, -1, -1, 200,150,"Sub3",#PB_Window_ScreenCentered | #PB_Window_SystemMenu )
CreateGadgetList(WindowID(3))
ButtonGadget(#Sub3_But_LaunchSub4, 70,110,120,30,"Launch Sub4")
EndProcedure
;*************************************
Procedure OpenSub4()
OpenWindow(#Win_Sub4, -1, -1, 200,150,"Sub4",#PB_Window_ScreenCentered | #PB_Window_SystemMenu )
CreateGadgetList(WindowID(4))
OptionGadget(#Sub4_Opt_Text1,20,20,160,20,"Beef")
OptionGadget(#Sub4_Opt_Text2,20,50,160,20,"Lamb")
OptionGadget(#Sub4_Opt_Text3,20,80,160,20,"Fish")
EndProcedure
;*************************************
OpenWindow(#Win_Main,0,0,320,240,"Main", #PB_Window_ScreenCentered | #PB_Window_SystemMenu )
CreateGadgetList(WindowID(0))
ButtonGadget(#Main_But_LaunchSub1,190,120,120,30,"Launch Sub1")
ButtonGadget(#Main_But_LaunchSub2,190,160,120,30,"Launch Sub2")
ButtonGadget(#Main_But_LaunchSub3,190,200,120,30,"Launch Sub3")
TextGadget(#Main_Txt_Display,10,10,160,20, "No Choice yet", #PB_Text_Border)
;*************************************
Define Event.l
Define EXIT.l
Define DisplayTxt$ = "Your Choice is "
;*************************************
Repeat
Event = WaitWindowEvent()
Select EventWindow()
;*********************************************************
;*** Main Window
;*********************************************************
Case #Win_Main
Select Event
Case #PB_Event_Gadget
;*************************************
;** Gadget Events
Select EventGadget()
Case #Main_But_LaunchSub1
OpenSub1()
Case #Main_But_LaunchSub2
OpenSub2()
Case #Main_But_LaunchSub3
OpenSub3()
EndSelect
;*************************************
;** Other Events
Case #PB_Event_CloseWindow
EXIT = 1
EndSelect
;*********************************************************
;*** Sub Window 1
;*********************************************************
Case #Win_Sub1
Select Event
Case #PB_Event_Gadget
;*************************************
;** Gadget Events
Select EventGadget()
Case #Sub1_But_TestBeep
Beep_( 500,300)
EndSelect
;*************************************
;** Other Events
Case #PB_Event_CloseWindow
CloseWindow(#Win_Sub1)
EndSelect
;*********************************************************
;*** Sub Window 2
;*********************************************************
Case #Win_Sub2
Select Event
Case #PB_Event_Gadget
;*************************************
;** Gadget Events
Select EventGadget()
Case #Sub2_But_TestBeep
Beep_(1500,300)
EndSelect
;*************************************
;** Other Events
Case #PB_Event_CloseWindow
CloseWindow(#Win_Sub2)
EndSelect
;*********************************************************
;*** Sub Window 3
;*********************************************************
Case #Win_Sub3
Select Event
Case #PB_Event_Gadget
;*************************************
;** Gadget Events
Select EventGadget()
Case #Sub3_But_LaunchSub4
OpenSub4()
EndSelect
;*************************************
;** Other Events
Case #PB_Event_CloseWindow
CloseWindow(#Win_Sub3)
EndSelect
;*********************************************************
;*** Sub Window 4
;*********************************************************
Case #Win_Sub4
Select Event
Case #PB_Event_Gadget
;*************************************
;** Gadget Events
Select EventGadget()
Case #Sub4_Opt_Text1
SetGadgetText(#Main_Txt_Display, DisplayTxt$ + "Beef")
Case #Sub4_Opt_Text2
SetGadgetText(#Main_Txt_Display, DisplayTxt$ + "Lamb")
Case #Sub4_Opt_Text3
SetGadgetText(#Main_Txt_Display, DisplayTxt$ + "Fish")
EndSelect
;*************************************
;** Other Events
Case #PB_Event_CloseWindow
CloseWindow(#Win_Sub4)
EndSelect
;*********************************************************
;*** End of Window List
;*********************************************************
EndSelect
Until EXIT = 1
End