Problème rafraichissement ScrollArea
Publié : ven. 01/juin/2007 16:02
Bonjour à tous!
j'ai un probleme de rafraichissement de scrollarea: je crée des gadgets à la volée dans une scroll area, mais lorsque je fait défiler celle ci , ça les efface, du moins en partie!
Genant.
il faut cliquer environ 6 fois sur le bouton "ajouter" pour que la scrollarea "apparaisse"
Je ne sais vraiment pas comment permettre un redraw() de la fenetre... maintenant ce probleme m'a l'air si grossier que c'est tres ^robablement moi qui ai fait une faute....
merci d'avance à vous!
j'ai un probleme de rafraichissement de scrollarea: je crée des gadgets à la volée dans une scroll area, mais lorsque je fait défiler celle ci , ça les efface, du moins en partie!
Genant.
Code : Tout sélectionner
Enumeration
#Window_0
#Button_0
#ScrollArea_0
EndEnumeration
Structure Gadget
Id.l
Nom.s
idnom.l
Taille.s
idtaille.l
Vitesse.s
idvitesse.l
Progress.l
idprogress.l
Frame.s
idframe.l
EndStructure
Global NewList Gadgets.Gadget()
Procedure AddGadget()
nbgadgets.l=CountList(Gadgets())
AddElement(Gadgets())
If nbgadgets= 0
dec.b=0
Else
dec.b=7
EndIf
If CreateGadgetList(WindowID(#Window_0))
Gadgets()\idnom=TextGadget(#PB_Any, 10, 15+nbgadgets*90+dec, 320, 15, "Nom;")
Gadgets()\idtaille=TextGadget(#PB_Any, 10, 35+nbgadgets*90+dec, 100, 15, "Taille:")
Gadgets()\idvitesse=TextGadget(#PB_Any, 10, 55+nbgadgets*90+dec, 110, 15, "Vitesse:")
Gadgets()\idprogress=ProgressBarGadget(#PB_Any, 10, 75+nbgadgets*90+dec, 325, 15, 0, 100)
Gadgets()\idframe=Frame3DGadget(#PB_Any, 5, 5+nbgadgets*90+dec, 335, 90, "")
If nbgadgets*(90+dec)> 515
SetGadgetAttribute(#ScrollArea_0,#PB_ScrollArea_InnerHeight,nbgadgets*(90+dec))
EndIf
EndIf
EndProcedure
Procedure Open_Window_0()
If OpenWindow(#Window_0, 215, 137, 601, 534, "test", #PB_Window_SystemMenu | #PB_Window_MinimizeGadget | #PB_Window_SizeGadget | #PB_Window_TitleBar | #PB_Window_ScreenCentered )
If CreateGadgetList(WindowID(#Window_0))
ScrollAreaGadget(#ScrollArea_0, 0, 0, 601,534, 580, 515, 30)
ButtonGadget(#Button_0, 460, 470, 60, 20, "Ajouter")
EndIf
EndIf
EndProcedure
Open_Window_0()
Repeat ; Start of the event loop
Event = WaitWindowEvent() ; This line waits until an event is received from Windows
WindowID = EventWindow() ; The Window where the event is generated, can be used in the gadget procedures
GadgetID = EventGadget() ; Is it a gadget event?
EventType = EventType()
If Event = #PB_Event_Gadget
If GadgetID = #Button_0
AddGadget()
EndIf
EndIf
Until Event = #PB_Event_CloseWindow ; End of the event loop
End
Je ne sais vraiment pas comment permettre un redraw() de la fenetre... maintenant ce probleme m'a l'air si grossier que c'est tres ^robablement moi qui ai fait une faute....
merci d'avance à vous!