#PB_Any et OpenWindowedScreen

Sujets variés concernant le développement en PureBasic
Dräc
Messages : 526
Inscription : dim. 29/août/2004 0:45

#PB_Any et OpenWindowedScreen

Message par Dräc »

Bonjour à tous,

Quelqu’un peut il m’expliquer
pourquoi le code ne fonctionne plus si on change la ligne 11 par la ligne 12 ?
J’ai peur que le problème soit comparable au post suivant
http://purebasic.hmt-forum.com/viewtopic.php?t=992
Mais cette fois pour OpenWindowedScreen!

Code : Tout sélectionner

InitSprite() 
If OpenWindow(0,0,0,400,300,#PB_Window_SystemMenu|#PB_Window_ScreenCentered|#PB_Window_SizeGadget|#PB_Window_MaximizeGadget,"MDIGadget") 
  If CreateGadgetList(WindowID(0)) And CreateMenu(0, WindowID(0)) 
    MenuTitle("Menu index 0") 
    MenuTitle("MDI windows menu") 
    MenuItem(0, "self created item") 
    MenuItem(1, "self created item") 
    
    MDIGadget(0, 0, 0, 0, 0, 1, 2, #PB_MDI_AutoSize) 
    AddGadgetItem(0, -1, "Matrix 3D") 
    
    hCont = ContainerGadget(1,10,10,200,200,#PB_Container_Double)
;    hCont = ContainerGadget(#PB_Any,10,10,200,200,#PB_Container_Double)
Debug hCont

    If OpenWindowedScreen( hCont, 0, 0, 200, 200, 0, 0, 0 ) = 0 
      MessageRequester( "Erreur" , "Impossible d'ouvrir l'écran " , 0 ) 
      End 
    EndIf 
  EndIf 
  
  If CreateSprite(1000,24,24) 
    StartDrawing(SpriteOutput(1000)) 
    Box(0,0,24,24,RGB($0,$0,$FF)) 
    StopDrawing() 
  EndIf 
  
  Dep = 8 
  
  Repeat 
    
    ClearScreen(0,155,255) 
        DisplaySprite(1000, x, 100) 
    
    x + Dep 
    If x >=300 Or x <=0 : Dep = -Dep : EndIf 
    FlipBuffers() 
  Until WindowEvent()=#PB_Event_CloseWindow 
EndIf 
Avatar de l’utilisateur
Flype
Messages : 2431
Inscription : jeu. 29/janv./2004 0:26
Localisation : Nantes

Message par Flype »

parceque dans un cas id=0, le container retourne bien un handle

et dans l'autre id=#PB_Any, le container retourne un id de container
donc ici il faut faire GadgetId(hCont)
ou plus logiquement :

iCont.l = ContainerGadget(....)
hCont.l = GadgetID(iCont)
Image
Dräc
Messages : 526
Inscription : dim. 29/août/2004 0:45

Message par Dräc »

Ok, j’ai réalisé ma confusion!

Merci Flype
Répondre