[PB4]-Comment faire un plot (ou autre) dans une ImageGadget?

Sujets variés concernant le développement en PureBasic
Avatar de l’utilisateur
flaith
Messages : 1487
Inscription : jeu. 07/avr./2005 1:06
Localisation : Rennes
Contact :

[PB4]-Comment faire un plot (ou autre) dans une ImageGadget?

Message par flaith »

Salut tout le monde,

je fait qq test et je butes sur un problème d'accès à une ImageGadget, voici le code

Code : Tout sélectionner

Enumeration
  #Window_0
EndEnumeration

Enumeration
  #Image_0
  #ImageDescription
  #Image_1
  #ImageSaisie
  #Button_0
EndEnumeration

;InitSprite()
;-création de l'image de fond
#WIDTH = 377
#HEIGHT = 81

If CreateImage(#ImageDescription,#WIDTH,#HEIGHT)
  StartDrawing(ImageOutput(#ImageDescription))
  	x = 0
  	w = #WIDTH
  	y = 0
  	h = #HEIGHT
  	Box(x,y,w,h,RGB(0, 0, 0))
  StopDrawing()
EndIf

If CreateImage(#ImageSaisie,#WIDTH,25)
  StartDrawing(ImageOutput(#ImageSaisie))
  	x = 0
  	w = #WIDTH
  	y = 0
  	h = 25
  	Box(x,y,w,h,RGB(0, 0, 50))
  StopDrawing()
EndIf

;-Main
If OpenWindow(#Window_0, 200, 100, 509, 316 , "Saisie Graphique",  #PB_Window_SystemMenu | #PB_Window_SizeGadget | #PB_Window_TitleBar)
  If CreateGadgetList(WindowID(#Window_0))
    ImageGadget(#Image_0, 8, 168, #WIDTH, #HEIGHT, ImageID(#ImageDescription)) ;, #PB_Image_Border)
    ImageGadget(#Image_1, 8, 249, #WIDTH, 25, ImageID(#ImageSaisie))
    ButtonGadget(#Button_0, 360, 80, 50, 40, "OK")
  EndIf

  quitMain_Form=0
  Repeat
    EventID  =WaitWindowEvent()
    MenuID   =EventMenu()
    GadgetID =EventGadget()
    WindowID =EventWindow()
    
    Select EventID
      Case #PB_Event_CloseWindow
        If WindowID=#Window_0
          quitMain_Form=1
        EndIf
        
      Case #PB_Event_Gadget
        Select GadgetID
C'est la que je cales, rien ne se passe :

Code : Tout sélectionner

          Case #Button_0
            StartDrawing(ImageOutput(#ImageDescription))

              DrawText(3,15,"testouille",RGB(255,255,255))
              Plot(3,3,RGB(255,255,255))
              Plot(4,4)
              Plot(5,5)

            StopDrawing()
        EndSelect
        
    EndSelect
  Until quitMain_Form
  CloseWindow(#Window_0)
EndIf
J'ai fait qq recherche, vu l'aide, mais j'ai pas trouvé de réponses :(
si qq'un a une idée, d'avance merci ;)
Dernière modification par flaith le lun. 03/avr./2006 10:56, modifié 1 fois.
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Message par Backup »

j'ai pas la V4
mais ça :

Code : Tout sélectionner

FlipBuffers()
            StopDrawing() 
ça me gene en principe les FlipBuffers() ont les fait a l'exterieur d'un
StartDrawing() //// StopDrawing()

mais cela a peut etre changé :D en tout cas avec la v3.94 pas question ! :D
Avatar de l’utilisateur
flaith
Messages : 1487
Inscription : jeu. 07/avr./2005 1:06
Localisation : Rennes
Contact :

Message par flaith »

oops merci oui c'est vrai, mais il est en commentaire car j'avais fait des tests, je l'enlève pour que cela soit plus clair ;)
Avatar de l’utilisateur
cederavic
Messages : 1338
Inscription : lun. 09/févr./2004 23:38
Localisation : Bordeaux

Message par cederavic »

Essay de mettre a jour l'image dans l'image gadget.
SetGadgetState(#Image_0, UseImage(#ImageDescription ))
juste apres StopDrawing()
Avatar de l’utilisateur
flaith
Messages : 1487
Inscription : jeu. 07/avr./2005 1:06
Localisation : Rennes
Contact :

Message par flaith »

merci, je viens d'essayer ceci (pour la V4)

Code : Tout sélectionner

          Case #Button_0
            StartDrawing(ImageOutput(#ImageDescription))
              DrawText(3,15,"testouille",RGB(255,255,255),RGB(0,0,0))
              Plot(3,3,RGB(255,255,255))
              Plot(4,4,RGB(255,255,255))
              Plot(5,5,RGB(255,255,255))
            StopDrawing()
            SetGadgetState(#Image_0, ImageID(#ImageDescription))
Et ca marche, un grand merci !!! :D :D :D
Répondre