multi fenetres

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
Thierry 31
Messages : 25
Inscription : mar. 08/févr./2005 21:44
Localisation : Toulouse

multi fenetres

Message 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:
nico
Messages : 3702
Inscription : ven. 13/févr./2004 0:57

Message 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 
Thierry 31
Messages : 25
Inscription : mar. 08/févr./2005 21:44
Localisation : Toulouse

Message 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?
nico
Messages : 3702
Inscription : ven. 13/févr./2004 0:57

Message 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  
Thierry 31
Messages : 25
Inscription : mar. 08/févr./2005 21:44
Localisation : Toulouse

Message par Thierry 31 »

hé oui :oops: .....

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