Je ne sais pas si cela peut t'apporter un semblant de début de solution ?
Mais je passe d'une fenêtre à l'autre en gardant mes saisies !!!
Détails, quand on est dans une fenêtre "HideWindow(#Window1,Etat)" cache la fenêtre ou non selon "Etat"
Si on veux voir les deux ou une seule... Également dans le schéma ci après cela peux s'étendre à plus de fenêtre...
Et on n'est pas dans le schéma "Parents->fille" => MDIGadget()
Code : Tout sélectionner
;
; Passage d'une fenetre à l'autre et écrire dans les deux...
;
Enumeration
#Window1
#Button0
#Button1
#Text1
#String1
#Window2
#Button2
#Button3
#Text2
#String2
EndEnumeration
Global Text1$, Text2$
Procedure Open_Window1()
OpenWindow(#Window1,0,0,600,600,"Window1",#PB_Window_ScreenCentered |#PB_Window_SizeGadget | #PB_Window_SystemMenu)
TextGadget(#Text1,20,100,160,20, "Ce texte est actif sur Windows2")
StringGadget(#String1,180,100,50,20,Text2$)
ButtonGadget(#Button0,300,10,120,20,"Ouvre Window2")
ButtonGadget(#Button1,20,20,80,20,"Test 1")
EndProcedure
Procedure Open_Window2()
OpenWindow(#Window2,0,0,500,400,"Window2",#PB_Window_ScreenCentered |#PB_Window_SizeGadget | #PB_Window_SystemMenu)
TextGadget(#Text2,20,100,160,20, "Ce texte est actif sur Windows2")
StringGadget(#String2,180,100,50,20,Text2$)
ButtonGadget(#Button2,200,30,120,20,"Passe à Windows1")
ButtonGadget(#Button3,20,60,80,20,"Test 2")
EndProcedure
Open_Window1()
Open_Window2()
Repeat
Select WaitWindowEvent()
Case #PB_Event_Gadget
Select EventGadget()
Case #Button0
If Open_Window2()
Else: Open_Window2():EndIf
SetActiveWindow(#Window2)
Case #Button1
If Open_Window2()
Else: Open_Window2():EndIf
Text1$=GetGadgetText(#String1)
;Debug Text1$
SetActiveWindow(#Window2)
UseGadgetList(WindowID(#Window2))
TextGadget(#Text2,20,100,160,20, "Ce texte est actif sur Windows2")
StringGadget(#String2,180,100,50,20,Text2$)
; -------------------------------------------
Case #Button2
SetActiveWindow(#Window1)
Case #Button3
Text2$=GetGadgetText(#String2)
;Debug Text2$
SetActiveWindow(#Window1)
UseGadgetList(WindowID(#Window1))
TextGadget(#Text1,20,100,160,20, "Et ici on est sur Windows1" )
StringGadget(#String1,200,100,50,20,Text1$)
EndSelect
; ----------------------------------
Case #PB_Event_CloseWindow
Select EventWindow()
Case #Window2
CloseWindow(#Window2)
Case #Window1
Break
EndSelect
EndSelect
ForEver
End