Page 1 sur 1

[v4 beta 11] Comprtement des fenetres [J'insiste]

Publié : dim. 07/mai/2006 5:54
par olivier
J'ai posté ce message dans débutant.... sans réponse.
Alors je le met ici car apparement c'est un bug.... qui serait bon de corriger... merci d'avance Fred


Voilà j'ai une fenetre, qui appel une autre fenetre, puis une autre.
Et j'aimerais que lorsque je reduis la troisième cela réduis aussi les 2 autres.
Et cela se passe bien, en mode débug, mais dés que je creé un executable, cela ne se comporte pas pareil !

Merci d'avance pour vos idées...

Code : Tout sélectionner

OpenWindow(0, 0, 0, 150, 150, "Test", #PB_Window_SystemMenu  | #PB_Window_MinimizeGadget)
CreateGadgetList(WindowID( 0))
ButtonGadget(1,10,10,100,20,"test")   

Repeat
   event = WaitWindowEvent()
   Select event
      Case #PB_Event_Gadget
         Select EventGadget()
            Case 1
               DisableWindow(0,1)
               OpenWindow(2, 210, 210, 150, 150, "Test2", #PB_Window_SystemMenu | #PB_Window_MinimizeGadget,WindowID(0))
               CreateGadgetList(WindowID( 2))
               ButtonGadget(3,10,10,100,20,"test")  
               
            Case 3
               DisableWindow(2,1)
               OpenWindow(4, 410, 410, 200, 200, "Test2", #PB_Window_SystemMenu | #PB_Window_MinimizeGadget,WindowID(2))
         EndSelect
         
         
      Case #WM_CLOSE 
         Select GetActiveWindow()
            Case 4
               CloseWindow(4)
               DisableWindow(2,0)
            Case 2
               CloseWindow(2)
               DisableWindow(0,0)
            Case 0
               quit=1
         EndSelect
         
      ; Case 161 ;detect evenement dans la barre system
         ; 
         ; If  EventwParam()=8;détect le minimize
            ; SetWindowState(0,#PB_Window_Minimize)
            ; DisableWindow(0,0)
         ; EndIf
         
   EndSelect
   
Until quit=1
End

Publié : dim. 07/mai/2006 12:39
par Gratteur
Ca marche très bien chez moi.

Publié : dim. 07/mai/2006 15:03
par LeCyb
Il n'y a aucun bug dans le code, mais tu ne réduis nulle part les deux autres fenêtres !

Pour réduire les fenêtres tu dois utiliser SetWindowState().

Publié : lun. 08/mai/2006 8:31
par olivier
Merci LeCyb, mais j'ai l'impression que tu va vite en besogne !

Mais bon je suis sur que tu va m'expliquer cela....

J'ai corrigé mon code, dans lequel j'avais oublié de mettre le id des fenetres parent.

Mais le problème est toujours le même. Et la question si tu concidere qu'il n'y a pas de bug est : Pourquoi le comportement est-il différent en mode debug et en lancant l'executable !
:mad:

Pour setwindowstate(), j'ai essayé de faire le même comportement que celui en mode debug mais sans succes, si tu pouvais m'aider un peu plus j'en serais tres heureux.

Merci d'avance

Code : Tout sélectionner

OpenWindow(0, 0, 0, 150, 150, "Test", #PB_Window_SystemMenu  | #PB_Window_MinimizeGadget)
CreateGadgetList(WindowID( 0))
ButtonGadget(1,10,10,100,20,"test")   

Repeat
   event = WaitWindowEvent()
   Select event
      Case #PB_Event_Gadget
         Select EventGadget()
            Case 1
               DisableWindow(0,1)
               OpenWindow(2, 210, 210, 150, 150, "Test2", #PB_Window_SystemMenu | #PB_Window_MinimizeGadget,WindowID(0))
               CreateGadgetList(WindowID( 2))
               ButtonGadget(3,10,10,100,20,"test")
               
            Case 3
               DisableWindow(2,1)
               OpenWindow(4, 410, 410, 200, 200, "Test2", #PB_Window_SystemMenu | #PB_Window_MinimizeGadget,WindowID(2))
         EndSelect
         
         
      Case #WM_CLOSE
         Select GetActiveWindow()
            Case 4
               CloseWindow(4)
               DisableWindow(2,0)
            Case 2
               CloseWindow(2)
               DisableWindow(0,0)
            Case 0
               quit=1
         EndSelect
         
         ; Case 161 ;detect evenement dans la barre system
         ; ;
         ; If  EventwParam()=8;détect le minimize
         ; SetWindowState(0,#PB_Window_Minimize)
         ; DisableWindow(0,0)
      ; EndIf
         
   EndSelect
   
Until quit=1
End

Publié : lun. 08/mai/2006 11:07
par Gratteur
Je n'arrive pas à reproduire ton bug, que ce soit avec ou sans le débuger, dans un exécutable, avec le support des skins, etc... dans tous les cas minimize la troisième fenetre, les deux autres sont elles-aussi minimisées (ce qui est normal aveec le jeu des fenetre mères).
Je tourne sous XP sp2, directx 9.

Publié : lun. 08/mai/2006 12:57
par olivier
Je tourne avec Win 2000 , DirectX 9.0c...

Publié : mar. 09/mai/2006 9:11
par Dr. Dri
Avec mon windows 98:
Aucune fenêtre ne se réduit dans la barre des tâches. La fenêtre que je réduis manuellement se réduit en bas à gauche du bureau, les deux autres ne bougent pas et sont "bloquées" comme si on avait lancé un requester...

Dri