Un petit code pour gérer 2 fenêtres. Je sais il y a déjà des exemples. (dont je me suis inspiré)
Ça pourra peut être servir à quelqu'un.
Je pose la question aux spécialistes : ce code est correct ?
Les réponses sont les bienvenues pour me faire évoluer.
Merci.
Code : Tout sélectionner
Enumeration
;Les fenetres
#Fenetre1
#Fenetre2
EndEnumeration
Enumeration
;Les gadgets
#Button_OuvrirFenetre2
#Button_FermerFenetre1
#Button_OuvrirFenetre1
#Button_QuitterFenetre2
#Button_Quitter
EndEnumeration
Define.l EventFenetre1, EventFenetre2, EventGadget, EventType, EventMenu
Procedure OpenWindow_Fenetre1()
If OpenWindow(#Fenetre1, 889, 206, 412, 412, "Fenetre 1", #PB_Window_SystemMenu|#PB_Window_TitleBar|#PB_Window_ScreenCentered)
ButtonGadget(#Button_OuvrirFenetre2, 125, 60, 135, 25, "Ouvrir fenetre 2")
ButtonGadget(#Button_Quitter, 125, 100, 135, 25, "Quitter")
EndIf
EndProcedure
Procedure OpenWindow_Fenetre2()
If OpenWindow(#Fenetre2, 479, 344, 354, 225, "Fenetre 2", #PB_Window_SystemMenu|#PB_Window_TitleBar|#PB_Window_ScreenCentered)
ButtonGadget(#Button_FermerFenetre1, 60, 40, 250, 25, "Fermer fenetre1")
ButtonGadget(#Button_OuvrirFenetre1, 60, 80, 250, 25, "Ouvrir fenetre 1")
ButtonGadget(#Button_QuitterFenetre2, 60, 120, 250, 25, "Fermer cette fenetre")
EndIf
Repeat
EventFenetre2 = WaitWindowEvent()
Select EventFenetre2
Case #PB_Event_Gadget
EventGadget = EventGadget()
EventType = EventType()
If EventGadget = #Button_OuvrirFenetre2 ;ouvre la deuxième fenetre
OpenWindow_Fenetre2()
ElseIf EventGadget = #Button_FermerFenetre1 ;ferme la première fenetre
MessageRequester("","Fermeture de la Fenetre 1")
CloseWindow(#Fenetre1)
ElseIf EventGadget = #Button_OuvrirFenetre1 ;ouvre la première fenetre
MessageRequester("","Ouverture de la Fenetre 1")
OpenWindow_Fenetre1()
CloseWindow(#Fenetre2)
ElseIf EventGadget = #Button_QuitterFenetre2 ;ferme la deuxième fenetre
CloseWindow(#Fenetre2)
ElseIf EventGadget = #Button_Quitter
End
EndIf
Case #PB_Event_CloseWindow
EventFenetre2 = EventWindow()
If EventFenetre2 = #Fenetre1 ;ferme tout
End
ElseIf EventFenetre2 = #Fenetre2 ;ferme la deuxième fenetre
CloseWindow(#Fenetre2)
EndIf
EndSelect
ForEver
EndProcedure
OpenWindow_Fenetre1()
Repeat
EventFenetre1 = WaitWindowEvent()
Select EventFenetre1
Case #PB_Event_Gadget
EventGadget = EventGadget()
EventType = EventType()
If EventGadget = #Button_OuvrirFenetre2 ;ouvre la deuxième fenetre
OpenWindow_Fenetre2()
ElseIf EventGadget = #Button_Quitter ;ouvre la première fenetre
CloseWindow(#Fenetre1)
Break
EndIf
Case #PB_Event_CloseWindow
EventFenetre2 = EventWindow()
If EventFenetre2 = #Fenetre1 ;ouvre la première fenetre
CloseWindow(#Fenetre1)
Break
EndIf
EndSelect
ForEver