Page 1 sur 1
Boucle evenement + evenement automatique
Publié : jeu. 26/janv./2006 13:57
par Thyphoon
Je voudrais savoir si c'est bien comme ça qu'il faut faire.
Mon programme doit verifier des infos tout les x temps ! Mais je ne peux pas utiliser les threads car j'ai plein de variable a utilisé lors de cette verification.
Voilà ce que j'ai programmé !
Code : Tout sélectionner
Repeat
If ElapsedMilliseconds()>time
ClearGadgetItemList(#Tableau)
Check(numero.s)
time=ElapsedMilliseconds()+50000
EndIf
Delay(10)
EventID.l = WindowEvent()
Select EventID
Case #PB_Event_Menu ; Un élément du menu a été sélectionné
Select EventMenuID()
Case 1
choix1();
Case 2
choix2();
EndSelect
EndSelect
Until EventID = #PB_EventCloseWindow
Publié : jeu. 26/janv./2006 14:03
par Dr. Dri
fais une recherche sur les timer
(SetTimer_)
Dri

Publié : jeu. 26/janv./2006 14:10
par Thyphoon
Dr. Dri a écrit :fais une recherche sur les timer
(SetTimer_)
Dri

merci beaucoup j'ai trouvé ça !
Code : Tout sélectionner
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
Question est ce que je peux passer ce que je veux comme variable dans la procedure TimerProc ou bien c'est comme pour les Threads ?
Publié : jeu. 26/janv./2006 14:12
par Dr. Dri
T'es pas obligé de passer par une procédure callback... tu peux recevoir l'évennement #WM_TIMER
Dri

Publié : jeu. 26/janv./2006 14:14
par Thyphoon
Dr. Dri a écrit :T'es pas obligé de passer par une procédure callback... tu peux recevoir l'évennement #WM_TIMER
Dri

Je crois que j'ai compris merci beaucoup ! je vais faire des tests !
Et question idiote si on veut arrêter un timer on fait comment ?
Publié : jeu. 26/janv./2006 14:17
par Dr. Dri
KillTimer_()
Dri

Publié : jeu. 26/janv./2006 14:19
par Thyphoon
Ok je suis trop nul merci !! c'est genial....en plus j'ai l'impression que ça marche ...

Publié : jeu. 26/janv./2006 14:22
par Dr. Dri
Thyphoon a écrit :Ok je suis trop nul merci !! c'est genial....en plus j'ai l'impression que ça marche ...

Je décline toute responsabilité en cas de non fonctionnement
Dri

Publié : jeu. 26/janv./2006 14:28
par Thyphoon
Merci beaucoup ....

) c'est le pied !!!
Si ça interesse quelqu'un je fais un programme qui permet de suivre son colispost ! Il me reste juste a faire l'interface, et un système de configuration, mais la routine pour aller interroger le site de la poste fonctionne.
Comme ça je peux aller gueuler a la poste lorsqu'un colissimo suivi est marqué arrivé dans votre boite aux lettres et que c'est pas le cas...
