Page 1 sur 1

Bibliothèque "TIMER"

Publié : dim. 29/août/2004 16:06
par Niffo
Bonjour,

Il est question dans la version 3.00 de PB d'une bibliothèque "Timer" : http://www.purebasic.com/french/news22.php3

Je ne vois pas cette bibliothèque dans la dernière version (version d'évaluation) !? A-t-elle été supprimée ?

Y a-t-il une autre manière de créer un Timer multi plate-forme ?

Publié : dim. 29/août/2004 16:48
par Le Soldat Inconnu
je crois qu'elle a été supprimé

il faut utiliser la fonction SetTimer_() et KillTimer_()
SetTimer_(hWnd, nIDEvent, uElapse, lpTimerFunc

· hWnd
Identifies the window to be associated with the timer. This window must be owned by the calling thread. If this parameter is NULL, no window is associated with the timer and the nIDEvent parameter is ignored.

· nIDEvent
Specifies a nonzero timer identifier. If the hWnd parameter is NULL, this parameter is ignored.

· uElapse
Specifies the time-out value, in milliseconds.

· lpTimerFunc
Points to the function to be notified when the time-out value elapses. For more information about the function, see TimerProc.
If lpTimerFunc is NULL, the system posts a WM_TIMER message to the application queue. The hwnd member of the message’s MSG structure contains the value of the hWnd parameter.
KillTimer_(hWnd, uIDEvent)

· hWnd
Identifies the window associated with the specified timer. This value must be the same as the hWnd value passed to the SetTimer function that created the timer.

· uIDEvent
Specifies the timer to be destroyed. If the window handle passed to SetTimer is valid, this parameter must be the same as the uIDEvent value passed to SetTimer. If the application calls SetTimer with hWnd set to NULL, this parameter must be the timer identifier returned by SetTimer.

Publié : dim. 29/août/2004 17:18
par comtois
la commande purebasic est la suivante :
ElapsedMilliseconds()

elle est aussi compatible avec linux .

Publié : dim. 29/août/2004 19:21
par Niffo
Sauf erreur :

- SetTimer n'est pas multi plate-forme puisque c'est une fonction de l'API windows

- ElapsedMilliseconds n'est pas un timer mais donne le temps écoulé depuis la mise en marche de la machine.

:(

Il ne me reste plus qu'à faire une boucle en testant ElapsedMiliseconds ? De plus, ça ne marchera pas sur Amiga :(

Publié : dim. 29/août/2004 21:21
par Dr. Dri
bah tu te code une lib timer a partir de la fonction elapsedmilliseconds... ce sera le noyeau... apres c'est pas difficile...

Dri

Publié : dim. 29/août/2004 22:36
par Niffo
Marchera pas sur Amiga ...

Publié : dim. 29/août/2004 23:04
par Le Soldat Inconnu
et oui :wink: mais on ne peux pas tous avoir

un thread avec un delai marchera partout :wink: mais c'est faire une usine à gaz pour pas grand chose

Publié : lun. 30/août/2004 13:35
par Niffo
Effectivement ...

Je vais quand même regarder comment ils font dans les projets OpenSource pour avoir des timers multi plate-forme en C.
Sinon, je me débrouillerais avec des directives de compilation pour avoir du code spécifique à chaque OS.

Merci de votre aide :)

Publié : lun. 30/août/2004 14:10
par Dr. Dri
en C ils doivent utiliser les librairies standarts qui sont différente pour chaque os il me semble... du coup on utilise le meme nom de fonction mais ca s'arrete là

Dri

Publié : ven. 22/oct./2004 13:57
par jnspunk
utilise Allegro, c une librairie pour C/C++ gratuite et multiplateforme, elle gere trés bien les timers.

Publié : ven. 22/oct./2004 14:07
par Niffo
Merci :)

Publié : ven. 22/oct./2004 14:37
par Anonyme2
Les librairies de Danilo COMDX et TIMER on été supprimées.

ComDX car PB supporte la prog orientée object avec les interfaces et Timer je n'en sait rien.

Les fonctions de cette librairie Timer font partie maintenant de sa librairie globale PureTools que tu peux télécharger ici


http://danilo.purearea.net/PureTools_I_021.zip


Je la recommande, elle est excellente