PC SOFT

FOROS PROFESIONALES
WINDEVWEBDEV y WINDEV Mobile

Inicio → WINDEV 2025 → Chronomètre précis au centième (lag au niveau du champ d'affichage)
Chronomètre précis au centième (lag au niveau du champ d'affichage)
Iniciado por bob06800, 11,ene. 2020 21:22 - 7 respuestas
Miembro registrado
55 mensajes
Publicado el 11,enero 2020 - 21:22
Bonjour,
J'aimerai faire un chronomètre précis au centième.
Je suis donc partir de l'exemple présent dans Windev "Les fonctions chrono"

Dans la procédure locale Durée, j'ai donc modifier ceci:

SAI_Durée = DuréeVersChaîne(duDurée, "+MM:SS:LL")

Du coup lorsque je lance le compte à rebours, je vois bien les centième défilés dans mon champ SAI_Durée, mais l'affichage n'est absolument pas fluide. ca passe de 00:00:00 à 00:00:49 , je ne vois pas s'afficher les chiffre entre. et bien sur si je clique rapidement sur le bouton pour arrêter mon chrono, ce n'est pas précis non plus

Avez-vous une solution pour que le chronomètre soit précis au centième et surtout sont affichage?

Merci d'avance pour votre aide
Publicado el 12,enero 2020 - 21:22
bob06800 a formulé ce samedi :
Bonjour,
J'aimerai faire un chronomètre précis au centième.
Je suis donc partir de l'exemple présent dans Windev "Les fonctions chrono"

Dans la procédure locale Durée, j'ai donc modifier ceci:

SAI_Durée = DuréeVersChaîne(duDurée, "+MM:SS:LL")

Du coup lorsque je lance le compte à rebours, je vois bien les centième
défilés dans mon champ SAI_Durée, mais l'affichage n'est absolument pas
fluide. ca passe de 00:00:00 à 00:00:49 , je ne vois pas s'afficher les
chiffre entre. et bien sur si je clique rapidement sur le bouton pour arrêter
mon chrono, ce n'est pas précis non plus

Avez-vous une solution pour que le chronomètre soit précis au centième et
surtout sont affichage?

Merci d'avance pour votre aide


Quelle est l'utilité d'afficher les centièmes lorsque le chrono tourne
?
Personnellement j'utilise souvent les fonction chronos et je n'affiche
que toutes les secondes. Par contre à la fin j'affiche les centièmes de
secondes.
Miembro registrado
15 mensajes
Publicado el 13,enero 2020 - 07:39
Bonjour,

j'utilise un thread, avec un appel infini toutes les 00:00:00:10
Dans le thread, j'ai mis :
Libellé..libellé = HeureVersChaine(TempsCalculé,"HH:MM:SS:CC")
Ceci fonctionne très bien
Miembro registrado
17 mensajes
Publicado el 13,enero 2020 - 07:57
Bonjour,

Je crois qu'il est déconseillé de faire la mise à jour directement d'un champ dans un thread, il faut passer par ExecuteThreadPrincipal depuis le thread, même si ça semble fonctionner.
Je suis d'accord avec Philippe, l'affichage des centièmes n'est peut être pas nécessaire, ce qui compte c'est l'affichage à l'arrêt du chrono
Miembro registrado
55 mensajes
Publicado el 13,enero 2020 - 08:28
Frank SACCO a écrit :
Bonjour,

Je crois qu'il est déconseillé de faire la mise à jour directement d'un champ dans un thread, il faut passer par ExecuteThreadPrincipal depuis le thread, même si ça semble fonctionner.
Je suis d'accord avec Philippe, l'affichage des centièmes n'est peut être pas nécessaire, ce qui compte c'est l'affichage à l'arrêt du chrono


Merci pour ces réponses.

Je me sert de l'affichage des centièmes pour chronométrer un temps précis sur un circuit de kart.
Actuellement quand je clique sur arrêter, l'affichage des centièmes ne s’arrêtent pas au bon moment
Mensaje modificado, 13,enero 2020 - 08:36
Miembro registrado
17 mensajes
Publicado el 13,enero 2020 - 10:30
Re bonjour,

Je gère mes chronos de cette façon :

- Bouton Start
- Début du chrono
- Lancement d'un thread pour affichage

- Thread
- Boucle tant qu'une valeur est à vrai
- Lance toutes les secondes un ExecuteThreadPrincipal dont le rôle sera d'afficher le temps

- Bouton Stop
- Fin du chrono
- Mise à faux de la valeur utilisée dans la boucle du Thread
- Affichage de la valeur du Chrono

En espérant que ça vous aidera à trouver une solution
Miembro registrado
55 mensajes
Publicado el 13,enero 2020 - 13:03
Merci, je vais essayer çà du coup
Miembro registrado
324 mensajes
Publicado el 13,enero 2020 - 13:16
>je ne vois pas s'afficher les chiffre entre

Je doute qu'un humain soit capable de voir la chose, il faut aussi prendre en compte le refresh de l'écran aussi, un écran 60hz est incapable de réagir à millisecondes ni aux cientième de secondes, l'image de l'écran n'est rafraichit que toute les 1.67cs de secondes !

et bien sur si je clique rapidement sur le bouton pour arrêter mon chrono, ce n'est pas précis non plus, comment celà ce n'est pas précis ?


Rien compris, genre vous voulez l'arrêter à 2s et 43cs, on est sur des échelles de temps bien trop rapide pour l'humain. Au moment du clic pour arrêter le chrono, il faut stocker en tout premier dateheuresys, comparé avec la dateheuresys stocké du début du traitement et le chiffre ne peut être QUE précis.

Bref si vous voulez un affichage propre d'un compteur de ce genre, faut passer sur du C / C# ou on bosse à la millisecondes et pas le centième !