bug Windowedscreen

Sujets variés concernant le développement en PureBasic
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

bug Windowedscreen

Message par Backup »

j'ai essaye d'expliquer le probleme sur le Forum anglais
mais l’écueil de Babel , m’empêche de me faire comprendre ( ils trouvent ça normal le fonctionnement de ce code :roll: )


dans ce code , j'essaie dans la procedure "test_ecran()" de tester si on peut ouvrir un ecran
si on peut pas , c'est qu'il a deja ete ouvert , et ça devrai renvoyer #True

seulement problème , apparemment ça ne gene pas Purebasic d'ouvrir un ecran pourtant deja ouvert
donc le test de la procedure renvoi toujours #False !! 8O

Code : Tout sélectionner


Enumeration
   #win
EndEnumeration
Declare.b test_ecran()


InitSprite()
debug  str(test_ecran()) +" l'ecran n'existe pas (renvoi 0) " ; renvoi 0 puisque l'ecran n'existe pas

if OpenWindow(#win,0,0,800,600,"test",#PB_Window_SystemMenu     )
   if openwindowedscreen (WindowID(#win),0,0,800, 600, 1,1,1 ) ; on creer un ecran ( dans une fenetre pour pouvoir tracer )
      debug str(test_ecran() )+" <--ceci prouve qu'il existe (renvoi 1 )"  ; <<<<<<<<<<<  BUG  !!!     ...... he return 0  ????
      ; ************ boucle *******************
      repeat
         event=WaitWindowEvent(2)
      until event=#PB_Event_CloseWindow
      ; **************************************
      CloseScreen()
      CloseWindow(#win)
   endif
endif


debug str(test_ecran()) +" <--ceci prouve qu'il n'existe plus (renvoi 0 )"
calldebugger


procedure.b test_ecran()
   ; By Dobro
   calldebugger
   protected win=1000
   if OpenWindow(win,0,0,800,600,"test",#PB_Window_SystemMenu     )
      if openwindowedscreen (WindowID(win),0,0,800, 600, 1,1,1 ) ; <<<< ---- Bug  in seconde Trace  (ligne 12 )! 
         
            CloseScreen() :CloseWindow(win)
            ProcedureReturn #false ; l'ecran n'existe pas            
         
         Else
            ProcedureReturn #true ; l'ecran existe deja ; <<<<<<< never here !! ???????????????
      endif
   endif
   
endprocedure


; EPB
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Re: bug Windowedscreen

Message par Backup »

une reponse m'a été fournie ... je vous laisse juge :roll:

If you create the second screen, the first screen will be close automatically, because there can be only one!

Code : Tout sélectionner

Enumeration
   #Window1
   #Window2
EndEnumeration

InitSprite()

OpenWindow(#Window1, 0, 0, 400, 400, "WindowTitle", #PB_Window_MinimizeGadget)
Debug OpenWindowedScreen(WindowID(#Window1), 0, 0, WindowWidth(#Window1), WindowHeight(#Window1), 0, 0, 0)

OpenWindow(#Window2, 500, 0, 400, 400, "WindowTitle", #PB_Window_MinimizeGadget)
Debug OpenWindowedScreen(WindowID(#Window2), 0, 0, WindowWidth(#Window2), WindowHeight(#Window2), 0, 0, 0)

Repeat
   
   Repeat
      
      Select WaitWindowEvent(10)
            
         Case #PB_Event_CloseWindow
            End
            
         Case #Null
            Break
            
      EndSelect
      
   ForEver
   
   ClearScreen(0)
   
   FlipBuffers()
   
ForEver
if you wanna check whether a screen is opened, you must create a variable itself, and not abusing OpenWindowedScreen!

it is no bug, it is only not a feature

en clair , un OpenWindowedScreen() ecrase le précedent ! sans message d'erreur , sans indiquer le fait . .. hum !
ils considèrent que ça n'est pas un bug ... 8O ha ? bon ... :?
dayvid
Messages : 1242
Inscription : mer. 11/nov./2009 18:17
Localisation : Poitiers (Vienne)

Re: bug Windowedscreen

Message par dayvid »

Sons fout ses gaulois :mrgreen:
La vie, C'est comme, Une boitte, De startis, On en voie, De toutes, Les couleurs !

Mon forum http://purebasic.forumphp3.com/index.php
Avatar de l’utilisateur
blendman
Messages : 2017
Inscription : sam. 19/févr./2011 12:46

Re: bug Windowedscreen

Message par blendman »

Ça pourrait être intéressant pourtant de créer plusieurs écrans, par exemple pour du splitscreen avec les sprite3D :D.
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Re: bug Windowedscreen

Message par Backup »

blendman a écrit :Ça pourrait être intéressant pourtant de créer plusieurs écrans, par exemple pour du splitscreen avec les sprite3D :D.
mon petit doigt me dis , que c'est prévu ... quand ??? ...

Un jour , un jour viendra , couleur d'orange
un jour viendra , un jour, de feuillages offrants
un jour d’épaules nues , ou les gens, s'aimeront
un jour comme un oiseau , sur la plus haute branche ...
Répondre