J'ai un problème de sélection de fenêtre que je n'arrive pas à résoudre. je fais appel à la communauté pour m'aider à identifier mes erreurs et je l'en remercie d'avance. Voici le programme qui me pose un soucis. J"ouvre une fenêtre MainWindow dans laquelle j'affiche des "ContenerGadget" superposés de couleur aléatoire. Jusque la tout fonctionne.
Après l'ouverture et la fermeture d'une fenêtre Apropos, la création des "ContenerGadget" plante le programme.
Si je laisse la fenêtre Apropos ouverte, les "ContenerGadget" sont créés dans celle-ci. J'ai donc un problème à la fermeture de la fenêtre Apropos, la création des gadgets ne se redirige pas vers la fenêtre MainWindow. J'ai essayer SetActiveWindow mais c'est uniquement pour le saisies.
Pouvez-vous m'aider à résoudre ce problème.
bien Cordialement
Code : Tout sélectionner
Global MainWindow, Apropos, ContenerGadget
Procedure OuvreContener()
R = Random (255,128) ; couleur aleatoire mais clair
G = Random (255,128)
B = Random (255,128)
couleur = RGB(R, G, B)
ContenerGadget = ContainerGadget(#PB_Any, 4, 70, WindowWidth(MainWindow)-8, WindowHeight(MainWindow)-75)
SetGadgetColor(ContenerGadget, #PB_Gadget_BackColor,couleur)
CloseGadgetList()
EndProcedure
Procedure OpenApropos() ; création de la fenetre A propos
Apropos = OpenWindow(#PB_Any, 100, 100, 220, 200, "A propos...", #PB_Window_SystemMenu | #PB_Window_MinimizeGadget | #PB_Window_SizeGadget)
ButtonGadget (20, 10, 10, 200, 30, "Fermer")
EndProcedure
MainWindow = OpenWindow(#PB_Any, 0, 0, 1000, 600, "ContenerGadget", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
SetWindowColor(MainWindow, RGB(188,188,188))
CreateMenu(0, WindowID(MainWindow))
MenuItem(#PB_Menu_About, "A prospos")
ButtonGadget (1, 50, 10, 200, 30, "Contener")
ButtonGadget (2, 300, 10, 200, 30, "Fentre Active")
Repeat
Event = WaitWindowEvent()
Select EventWindow() ; en fonction de la fenetre , on traite Even
Case MainWindow
Select Event
Case #PB_Event_CloseWindow
quit = 1
Case #PB_Event_Menu
Select EventMenu()
Case #PB_Menu_About
OpenApropos()
EndSelect
Case #PB_Event_Gadget
Select EventGadget()
Case 1
OuvreContener()
Case 2
Debug GetActiveWindow()
EndSelect
EndSelect
Case Apropos
Select Event
Case #PB_Event_CloseWindow
CloseWindow (Apropos)
SetActiveWindow(MainWindow)
EndSelect
Select EventGadget() ; fermeture avec le bouton
Case 20
CloseWindow (Apropos)
SetActiveWindow(MainWindow)
EndSelect
EndSelect
Until quit = 1