Une autre méthode qui mange moins le processeur, tu peux modifier le code afin de mettre l'action désirée dans un procédure
Enumeration
#liste1
EndEnumeration
If OpenWindow (0,150,150,230,100, "w1" )
If CreateGadgetList ( WindowID (0) )
ListIconGadget ( #liste1 ,1,1,220,100, "zq" ,196)
S = 2 ; Boucle toutes les 2 secondes
; On initialise le timer numéro 1 pour la fenêtre 0
SetTimer_ ( WindowID (0), 1, 1000*S, 0)
Repeat
Select WaitWindowEvent ()
Case #WM_TIMER
; On ajoute un élément si il y en a moins de 5
If CountGadgetItems ( #liste1 ) < 5
AddGadgetItem ( #liste1 ,1, "Test" )
Else ; L'ajout s'arrête si il y a plus de 5 éléments
KillTimer_ ( WindowID (0), 1)
EndIf
Case #PB_Event_Gadget
Select EventGadget ()
Case #liste1
EndSelect
Case #PB_Event_CloseWindow
Break
EndSelect
ForEver
EndIf
EndIf
EDIT version avec procedure
Enumeration
#liste1
EndEnumeration
Global Inc ; Variable d'incrémentation
Procedure UpdateEach2S()
; On ajoute un élément si il y en a moins de 5
If Inc < 5
Inc + 1
AddGadgetItem ( #liste1 ,1, "Test" )
Else ; L'ajout s'arrête si il y a plus de 5 éléments
KillTimer_ ( WindowID (0), 1)
EndIf
EndProcedure
If OpenWindow (0,150,150,230,100, "w1" )
If CreateGadgetList ( WindowID (0) )
ListIconGadget ( #liste1 ,1,1,220,100, "zq" ,196)
S = 2 ; Boucle toutes les 2 secondes
; On initialise le timer numéro 1 pour la fenêtre 0
SetTimer_ ( WindowID (0), 1, 1000*S, @UpdateEach2S())
Repeat
Select WaitWindowEvent ()
Case #PB_Event_Gadget
Select EventGadget ()
Case #liste1
EndSelect
Case #PB_Event_CloseWindow
Break
EndSelect
ForEver
EndIf
EndIf