Alors ma question est donc la suivante : comment résoudre ce problème de lenteur à l'affichage ?
Voici mon code :
Code : Tout sélectionner
InitSprite()
OpenWindow(0,0,0,860,572,"Programme",#PB_Window_SystemMenu|#PB_Window_MinimizeGadget|#PB_Window_ScreenCentered) And CreateGadgetList(WindowID(0))
PanelGadget(0,532,10,318,512)
AddGadgetItem(0,-1,"Panneau n°1")
ButtonGadget(1,10,10,120,25,"Bouton n°1")
ButtonGadget(2,10,45,120,25,"Bouton n°2")
ButtonGadget(3,10,80,120,25,"Bouton n°3")
AddGadgetItem(0,-1,"Panneau n°2")
ListViewGadget(4,10,10,120,70)
ButtonGadget(5,10,90,120,25,"Bouton n°4")
ButtonGadget(6,10,125,120,25,"Bouton n°5")
ButtonGadget(7,10,160,120,25,"Bouton n°6")
CreateStatusBar(0,WindowID(0))
CreateMenu(0,WindowID(0))
MenuTitle("Projet")
MenuItem(0,"Quitter")
OpenWindowedScreen(WindowID(0),10,10,512,512,0,0,0)
CreateSprite(0,128,128)
StartDrawing(SpriteOutput(0))
Circle(64,64,64,RGB(255,0,0))
StopDrawing()
For i=1 To 250
AddGadgetItem(4,-1,"élément n°"+Str(i))
Next i
Procedure Display()
Static X.f,Y.f,i.b,j.b
If i=0 : X+2 : Else : X-2 : EndIf
If j=0 : Y+0.6 : Else : Y-0.6 : EndIf
DisplaySprite(0,X,Y)
If X>384 : i=1 : EndIf
If X<0 : i=0 : EndIf
If Y>384 : j=1 : EndIf
If Y<0 : j=0 : EndIf
EndProcedure
Repeat
Event=WaitWindowEvent(10)
Select Event
Case #PB_Event_CloseWindow
End
Case #PB_Event_Menu
EventMenu=EventMenu()
Select EventMenu
Case 0
End
EndSelect
Case #PB_Event_Gadget
EventGadget=EventGadget()
Select EventGadget
Case 1 To 3
MessageRequester("Information","Vous avez appuyé sur le bouton n°"+Str(EventGadget))
Case 5 To 7
MessageRequester("Information","Vous avez appuyé sur le bouton n°"+Str(EventGadget-1))
EndSelect
EndSelect
ClearScreen(0)
Display()
FlipBuffers()
ForEver