Fenetre ouverte à partir d'une autre !!

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
Avatar de l’utilisateur
Philippe_GEORGES
Messages : 140
Inscription : mer. 28/janv./2009 13:28

Fenetre ouverte à partir d'une autre !!

Message par Philippe_GEORGES »

Voilà, je souhaite ouvrir une fenêtre à partir d'une fiche principale !

Seulement voilà, lorsque je ferme la seconde fenêtre, la fenêtre principale (la première, se ferme aussi !!

Sans doute l'événement est "transmis" à la première fenêtre lorsque je ferme la seconde....

y a t-il une solution simple, pour ne fermer que la seconde fenêtre ?

Code : Tout sélectionner

Enumeration

#Fenetre
#Fenetre2
#Texte
#Button
#ButtonFermer
#ButtonFenetre
EndEnumeration

Procedure fenetre2()
  
  OpenWindow(#Fenetre2,800,200,300,300,"Seconde fenetre",#PB_Window_SystemMenu)
  
Repeat
event=WaitWindowEvent()  

Until event=#PB_Event_CloseWindow 


EndProcedure
  
  

OpenWindow(#Fenetre,200,200,300,300,"Les Gadgets",#PB_Window_SystemMenu)

TextGadget(#Texte,10,10,200,50,"Je suis du texte !")
ButtonGadget(#Button,10,200,80,30,"Bouton")
ButtonGadget(#ButtonFermer,100,200,80,30,"fermer")
ButtonGadget(#ButtonFenetre,190,200,80,30,"Fenetre") 



 
Repeat
event=WaitWindowEvent()  
  
Select event

      Case #PB_Event_Gadget
       EventGadget = EventGadget()       
       If EventGadget = #Button 
         MessageRequester("Information", "bouton cliqué !!",#PB_MessageRequester_Ok) 
         
       EndIf
       
       If EventGadget = #ButtonFenetre 
         fenetre2()
   
         
           Break
         
       EndIf
       
       If EventGadget = #ButtonFermer 
            CloseWindow(#Fenetre)
           Break
         
       EndIf
EndSelect

Until event=#PB_Event_CloseWindow 
End

Merci d'avance !

Philippe
Philippe GEORGES
"La simplicité est la sophistication suprême" (De Vinci)
assistance informatique, création de logiciels
Warkering
Messages : 808
Inscription : ven. 08/janv./2010 1:14
Localisation : Québec, Canada

Re: Fenetre ouverte à partir d'une autre !!

Message par Warkering »

Il faut récupérer sur quelle fenêtre l'événement a eu lieu avec EventWindow().
Cette fonction renvoie l'ID de la fenêtre dont le bouton fermeture a été cliquer ( Dans ton code, ce serais #Fenetre pour ta fenêtre principale et #Fenêtre2 pour ta seconde fenêtre. )
Un petit Select et tu seras sur la voie de l'illumination! :lol:

EDIT : En bonus, ton code version épuré et corrigé! :wink:

Code : Tout sélectionner

Enumeration
  #Fenetre
  #Fenetre2
  #Texte
  #Bouton
  #BoutonFermer
  #BoutonFenetre
EndEnumeration

OpenWindow(#Fenetre, 32, 32, 640, 480, "Fenetre 1", #PB_Window_SystemMenu)
  TextGadget(#Texte, 2, 2, 160, 20, "Texto illimité avec PB! Hourrah!")
  ButtonGadget(#Bouton, 2, 24, 80, 20, "Bouton")
  ButtonGadget(#BoutonFermer, 84, 24, 80, 20, "Bouton Fermer")
  ButtonGadget(#BoutonFenetre, 166, 24, 80, 20, "Bouton Fenêtre")

Repeat
  Select WaitWindowEvent()
    Case #PB_Event_CloseWindow:
      If EventWindow() = #Fenetre2
        CloseWindow(#Fenetre2)
      Else
        Break
      EndIf
    Case #PB_Event_Gadget:
      Select EventGadget()
        Case #Bouton:
          MessageRequester("Bouton", "Bouton cliqué", #PB_MessageRequester_Ok)
        Case #BoutonFermer:
          Break
        Case #BoutonFenetre:
          OpenWindow(#Fenetre2, 64, 64, 320, 240, "Fenetre 2", #PB_Window_SystemMenu)
      EndSelect
  EndSelect
ForEver
Dit le moi si tu ne comprends pas certain bout du code! :wink:
Avatar de l’utilisateur
Philippe_GEORGES
Messages : 140
Inscription : mer. 28/janv./2009 13:28

Re: Fenetre ouverte à partir d'une autre !!

Message par Philippe_GEORGES »

Un grand merci, c'est simple quand on voit la solution !! :D

Cette notion d'événement sur un contrôle est à maitriser !! ta solution m'aide beaucoup dans ce sens ! :lol:

Philippe
Philippe GEORGES
"La simplicité est la sophistication suprême" (De Vinci)
assistance informatique, création de logiciels
Warkering
Messages : 808
Inscription : ven. 08/janv./2010 1:14
Localisation : Québec, Canada

Re: Fenetre ouverte à partir d'une autre !!

Message par Warkering »

Eh bien de rien! :)

Il faut tenir compte de toutes éventualités au sein du programme. C'est très important.
Répondre