Page 1 sur 1

multi fenetres

Publié : jeu. 24/févr./2005 11:44
par Thierry 31
j'ai repris un exemple du Soldat Inconnu
je l'ai modifié de façon à pouvoir piloter la fenetre1 par la fenetre0
en l'occurence pour pouvoir fermer fenetre1 par fenetre0
les debug montrent que je suis toujours dans la boucle de fenetre1...

Code : Tout sélectionner

; Auteur : Le Soldat Inconnu 
; Version de PB : 3.9 
; 
; Explication du programme : 
; Pour faire des programmes de test rapidement, il ne reste qu'a rajouter les gadgets et la gestion des évènements. 


Procedure Fenetre() 
    ;EnableWindow_(WindowID(0), 0) ; On désactive 
    
    If OpenWindow(1, 0, 0, 100, 100, #PB_Window_SystemMenu | #PB_Window_ScreenCentered | #PB_Window_MinimizeGadget, "Test2") = 0 Or CreateGadgetList(WindowID()) = 0 
        End 
    EndIf 
    
    Repeat 
        Event = WaitWindowEvent() 
        Select  EventWindowID() 
            Case 0
                Debug "fenetre 0"
                EnableWindow_(WindowID(1), 0)
                UseWindow(0)
                ActivateWindow()
            Case 1
                Debug "fenetre 1"
        EndSelect
        
    Until Event = #PB_EventCloseWindow 
    
    CloseWindow(1) 
    ;UseWindow(0) 
    
    ;EnableWindow_(WindowID(0), 1) ; On active 
EndProcedure 



; Création de la fenêtre et de la GadgetList 
If OpenWindow(0, 0, 0, 300, 300, #PB_Window_SystemMenu | #PB_Window_ScreenCentered | #PB_Window_MinimizeGadget, "Test1") = 0 Or CreateGadgetList(WindowID()) = 0 
    End 
EndIf 

ButtonGadget(0, 10, 10, 100, 30, "ouvrir fenêtre") 
ButtonGadget(1, 10, 50, 100, 30, "fermer fenêtre") 
Repeat 
    Event = WaitWindowEvent() 
    
    If Event = #PB_EventGadget 
        Select EventGadgetID() ; Gadgets 
            Case 0 
                Debug "ouvrir"
                Fenetre()
            Case 1
                Debug "fermer"
                CloseWindow_(1)
        EndSelect 
    EndIf 
    
Until Event = #PB_EventCloseWindow 

j'ai fouillé dans le forum et en désespoir de cause je me retourne vers vous :cry:

mes respects au Soldat Inconnu :wink:

Publié : jeu. 24/févr./2005 11:53
par nico

Code : Tout sélectionner

Procedure Fenetre() 
  If OpenWindow(1, 0, 0, 100, 100, #PB_Window_SystemMenu | #PB_Window_ScreenCentered | #PB_Window_MinimizeGadget, "Test2") = 0 Or CreateGadgetList(WindowID()) = 0 
    End 
  EndIf 
EndProcedure 



; Création de la fenêtre et de la GadgetList 
If OpenWindow(0, 0, 0, 300, 300, #PB_Window_SystemMenu | #PB_Window_ScreenCentered | #PB_Window_MinimizeGadget, "Test1") = 0 Or CreateGadgetList(WindowID()) = 0 
  End 
EndIf 

ButtonGadget(0, 10, 10, 100, 30, "ouvrir fenêtre") 
ButtonGadget(1, 10, 50, 100, 30, "fermer fenêtre") 
Repeat 
  Event = WaitWindowEvent() 
  
  If Event = #PB_EventGadget 
    Select EventGadgetID() ; Gadgets 
      Case 0 
        Debug "ouvrir" 
        Fenetre() 
      Case 1 
        Debug "fermer" 
        CloseWindow(1) 
    EndSelect 
  EndIf 
  
Until Event = #PB_EventCloseWindow 

Publié : jeu. 24/févr./2005 12:27
par Thierry 31
merci nico
j'avais essayé pas mal de choses mais pas "viré" la boucle, a la lecture du code c'est évident :mad:

une chose est curieuse, on ne teste pas la petite croix sur fenetre1, mais elle reste pourtant active...

as tu une expliquation?

Publié : jeu. 24/févr./2005 12:42
par nico

Code : Tout sélectionner

Procedure Fenetre() 
  If OpenWindow(1, 0, 0, 100, 100, #PB_Window_SystemMenu | #PB_Window_ScreenCentered | #PB_Window_MinimizeGadget, "Test2") = 0 Or CreateGadgetList(WindowID()) = 0 
    End 
  EndIf 
EndProcedure 



; Création de la fenêtre et de la GadgetList 
If OpenWindow(0, 0, 0, 300, 300, #PB_Window_SystemMenu | #PB_Window_ScreenCentered | #PB_Window_MinimizeGadget, "Test1") = 0 Or CreateGadgetList(WindowID()) = 0 
  End 
EndIf 

ButtonGadget(0, 10, 10, 100, 30, "ouvrir fenêtre") 
ButtonGadget(1, 10, 50, 100, 30, "fermer fenêtre") 
Repeat 
  Event = WaitWindowEvent() 
  
  Select Event 
    Case #PB_EventGadget 
      Select EventGadgetID() ; Gadgets 
        Case 0 
          Debug "ouvrir" 
          Fenetre() 
        Case 1 
          Debug "fermer" 
          CloseWindow(1) 
      EndSelect 
      
    Case #PB_EventCloseWindow
      If EventWindowID() = 0
        Quit=1
      EndIf
  EndSelect 
  
Until Quit=1  

Publié : jeu. 24/févr./2005 15:23
par Thierry 31
hé oui :oops: .....

merci beaucoup pour la leçon, j'arriverai bien à te coller un jour :wink: