Page 1 sur 1

fonctions timer

Publié : ven. 05/août/2005 17:46
par jerexgrz
y'a t-il des fonctions qui permetent de repeter automatiquement du code toutes les X secondes par exemple et de definir du temps (en ms bien sur)! comme la fonction Timer et Interval en vb 6. Merci.

PS : J'ai regardé dejà les anciens msgs mais j'ai pas trouvé ce que je cherchais.

Publié : ven. 05/août/2005 18:51
par Backup
voila , voila

:D


Procedure TimerProc(hwnd.l, uMsg.l, idEvent.l, dwTime.l)
     Select uMsg
         Case #WM_TIMER
             Select idEvent
                 Case 1
                     Debug "--------------------1 seconde"
                     ; Ici, le code à executer toutes les secondes
                 Case 2
                     Debug "0.2 secondes"
                     ; Ici, le code à executer toutes les 200 millisecondes
                 Case 3
                     Debug "-------------------------------------------3 secondes"
                     ; Ici, le code à executer toutes les 3 secondes
             EndSelect
     EndSelect
EndProcedure


If OpenWindow (0, 100, 100, 100, 100, #PB_Window_SystemMenu , "" )
    Handle = WindowID (0)
    
     SetTimer_ (Handle, 1, 1000, @TimerProc()) ; envoie un evenement toutes les 1000 millisecondes
     SetTimer_ (Handle, 2, 200, @TimerProc()) ; envoie un evenement toutes les 200 millisecondes
     SetTimer_ (Handle, 3, 3000, @TimerProc()) ; envoie un evenement toutes les 3000 millisecondes
    
     Repeat
     Until WaitWindowEvent () = #PB_Event_CloseWindow
EndIf


Publié : ven. 05/août/2005 20:38
par Dr. Dri
Y'a aussi des solutions en PB natif (sans api)
voir les thread et les fonctions delay et elapsedmilliseconds

Dri

Publié : dim. 07/août/2005 9:31
par jerexgrz
:D Ok ! Merci pour l'aide. Je vais regarder ca de plus pres !!

Publié : dim. 07/août/2005 13:43
par kelly
Moi aussi je vais regarder ca car avant, je faisais dans la boucle principale un "if random(1000)=1 alors on affiche un renseignement". C'etait aleatoire et je pense que ca ralenti un poil