petite question sur une boucle svp

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
bernard13
Messages : 1221
Inscription : mer. 05/janv./2005 21:30

petite question sur une boucle svp

Message 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
Avatar de l’utilisateur
Chris
Messages : 3731
Inscription : sam. 24/janv./2004 14:54
Contact :

Message 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
bernard13
Messages : 1221
Inscription : mer. 05/janv./2005 21:30

Message 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
bernard13
Messages : 1221
Inscription : mer. 05/janv./2005 21:30

Message par bernard13 »

et si je met un bouton dans la deuxieme fenetre au lieu de la croix pour quitter et fermer la fenetre ?
Avatar de l’utilisateur
Chris
Messages : 3731
Inscription : sam. 24/janv./2004 14:54
Contact :

Message par Chris »

Ben, ça revient au même!

Code : Tout sélectionner

Case #Btn_NewWIndow1 
   CloseWindow(#Window_1) 
   UseWindow(#Window_0)
Avatar de l’utilisateur
Crystal Noir
Messages : 892
Inscription : mar. 27/janv./2004 10:07

Message 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.
Avatar de l’utilisateur
Flype
Messages : 2431
Inscription : jeu. 29/janv./2004 0:26
Localisation : Nantes

Message par Flype »

#schtroumpf bernard t'es un vrai schtroumpf faineant en matiere d'ecriture. bon je sais que tu le sais. :wink:
Image
Répondre