Page 1 sur 1

petite question sur une boucle svp

Publié : mer. 12/oct./2005 10:55
par bernard13
bonjour
juste une petite question

quand je crée une application et je crée un bouton ou un menu pour faire apparaitre une deuxieme fenetre

pour la deuxieme fenetre j'utilise :

repeat
Select WaitWindowEvent()

Case #PB_Event_CloseWindow
fermer=1
EndSelect
Until fermer=1
CloseWindow(#fenetre_voir)
While WindowEvent():Wend

je cherche un autre moyen de fermer cette deuxieme fenetre quand on clique sur la croix

Publié : mer. 12/oct./2005 11:13
par Chris
Tu n'est pas obligé de refaire une boucle à chaque fenêtre.
La boucle de la première peut très bien gérer les évènements des autres fenêtres, (sauf, évidement, si tu dois pouvoir fermer la première fenêtre sans fermer les autres).

Pour savoir sur quelle fenêtre se trouve le bouton de fermeture sur lequel tu cliques, il y a EventWindowID() qui te renvoie le numéro de la fenêtre.

Code : Tout sélectionner

Enumeration
  #Window_0
  #Window_1
EndEnumeration

Enumeration
  #Btn_NewWIndow0
  #Btn_NewWIndow1
EndEnumeration
  
If OpenWindow(#Window_0, 100, 100, 200, 100, #PB_Window_SystemMenu , "Fenêtre 1",0)
  If CreateGadgetList(WindowID(#Window_0))
    ButtonGadget(#Btn_NewWIndow0, WindowWidth()/2 - 50, WindowHeight()-40, 100, 25, "Nouvelle")
  EndIf
EndIf
  
  
Repeat
  Select WindowEvent()
    Case #PB_EventGadget
      Select EventGadgetID()
        Case #Btn_NewWIndow0
          
          If OpenWindow(#Window_1, 330, 100, 200, 100, #PB_Window_SystemMenu , "Fenêtre 2",0)
            If CreateGadgetList(WindowID(#Window_1))
              ButtonGadget(#Btn_NewWIndow1, WindowWidth()/2 - 50, WindowHeight()-40, 100, 25, "Bouton")
            EndIf
          EndIf
          
          
        Case #Btn_NewWIndow1
          
          
      EndSelect
      
    Case #PB_EventCloseWindow
      Select EventWindowID()
        Case #Window_0
          Quit = 1
          
        Case #Window_1
          CloseWindow(#Window_1)
          UseWindow(#Window_0)
          
      EndSelect
  EndSelect
Until Quit = 1
End

Publié : mer. 12/oct./2005 14:15
par bernard13
merci chris
ca fais quelques que cherche une soluce car juste a present je fesais comment ça ...



je content que je suis revenu

Publié : mer. 12/oct./2005 14:18
par bernard13
et si je met un bouton dans la deuxieme fenetre au lieu de la croix pour quitter et fermer la fenetre ?

Publié : mer. 12/oct./2005 14:26
par Chris
Ben, ça revient au même!

Code : Tout sélectionner

Case #Btn_NewWIndow1 
   CloseWindow(#Window_1) 
   UseWindow(#Window_0)

Publié : mer. 12/oct./2005 22:43
par Crystal Noir
bernard13 a écrit :merci chris
ca fais quelques que cherche une soluce car juste a present je fesais comment ça ...



je content que je suis revenu
moi yen a pas comprendre.

Publié : mer. 12/oct./2005 22:47
par Flype
#schtroumpf bernard t'es un vrai schtroumpf faineant en matiere d'ecriture. bon je sais que tu le sais. :wink: