mais l’écueil de Babel , m’empêche de me faire comprendre ( ils trouvent ça normal le fonctionnement de ce code

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 !!

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