Problème fermeture fenêtre

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
Bmld76
Messages : 116
Inscription : dim. 09/janv./2022 12:47

Problème fermeture fenêtre

Message par Bmld76 »

Bonjour,

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


_____________________________________________________________
IMAC 21.5 2012 Core I5 - 2.70 Ghz. 16 GB NVIDIA GeForce GT 640M 512 Mo. MacOs OCPL Sonoma 14.3
MacBook Air M1 - 8Go - Sonoma 14.5

PureBasic 6.11 MacOS
Marc56
Messages : 2197
Inscription : sam. 08/févr./2014 15:19

Re: Problème fermeture fenêtre

Message par Marc56 »

Bonjour,

Si tu utilises plusieurs GagetList, alors il faut spécifier au système laquelle il doit utiliser lorsque tu change de fenêtre.

Code : Tout sélectionner

    Case  Apropos
      Select Event  
        Case #PB_Event_CloseWindow
          CloseWindow (Apropos) 
          SetActiveWindow(MainWindow)
          UseGadgetList(WindowID(MainWindow))    ;  <--- Ajouter ça
      EndSelect
Note que tel que tu as fais ton système, tu créé un nouveau container(ContainerGadget) à chaque fois que tu ouvres la fenêtre « À propos ».
:wink:
Dernière modification par Marc56 le mar. 22/févr./2022 14:20, modifié 1 fois.
Bmld76
Messages : 116
Inscription : dim. 09/janv./2022 12:47

Re: Problème fermeture fenêtre

Message par Bmld76 »

Merci, c'est effectivement l'info qui me manquait.

Bien cordialement
_____________________________________________________________
IMAC 21.5 2012 Core I5 - 2.70 Ghz. 16 GB NVIDIA GeForce GT 640M 512 Mo. MacOs OCPL Sonoma 14.3
MacBook Air M1 - 8Go - Sonoma 14.5

PureBasic 6.11 MacOS
Bmld76
Messages : 116
Inscription : dim. 09/janv./2022 12:47

Re: Problème fermeture fenêtre

Message par Bmld76 »

Pour la création de nouveau container , c'est bien ce dont j'ai besoin, je les superpose et je les utilise avec Show et Hide. merci encore
_____________________________________________________________
IMAC 21.5 2012 Core I5 - 2.70 Ghz. 16 GB NVIDIA GeForce GT 640M 512 Mo. MacOs OCPL Sonoma 14.3
MacBook Air M1 - 8Go - Sonoma 14.5

PureBasic 6.11 MacOS
Répondre