Réduire le temps

Signaler
Messages postés
47
Date d'inscription
mercredi 25 mai 2005
Statut
Membre
Dernière intervention
29 juin 2005
-
Messages postés
47
Date d'inscription
mercredi 25 mai 2005
Statut
Membre
Dernière intervention
29 juin 2005
-
Bonjour à tous, j'ai un petit problème que j'ai déjà expliqué sur un autre forum, je vous donne le lien:

[url]http://forum.hardware.fr/hardwarefr/Programmation/Reduire-temps-sujet-72206-1.htm/url



Si quelqu'un sait quoi faire, je le remercie d'avance parce que je sais vraiment pas quoi faire.



Aldarek

9 réponses

Messages postés
21041
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
30
sous Windows, un timer suffirait : SetTimer();

ciao...
BruNews, MVP VC++
Messages postés
47
Date d'inscription
mercredi 25 mai 2005
Statut
Membre
Dernière intervention
29 juin 2005

Désolé de paraitre chiant après tout ce que tu as lu mais tu pourrais
être un peu plus explicite dans le sens ou tu pourrais me donner un
exemple concret stp...



Merci en tout les cas de t'être donné la peine..



Aldarek
Messages postés
21041
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
30
Regarde MSDN, plus simple que SetTimer() tu meurs.
Y en a aussi plein les sources sur cppfrance.

ciao...
BruNews, MVP VC++
Messages postés
47
Date d'inscription
mercredi 25 mai 2005
Statut
Membre
Dernière intervention
29 juin 2005

Mais ca ne va pas poser le même problème que le Sleep?? (si tu as bien lu le topic )



Merci d'avance
Messages postés
21041
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
30
J'ai dit au début "sous Windows", en ce cas no problem tu changes un membre après l'autre au fur et à mesure du timer.

int idx = 0; // donnée globale

dans la wndProc, exemple avec 3 membres sur ta structure:
case WM_TIMER:
switch(idx) {
case 0:
data.v1 = ...;
break;
case 1:
data.v2 = ...;
break;
case 2;
data.v3 = ...;
break;
}
if(++idx > 2) idx = 0; // action sur membre 0 prochain tour
return 0;
etc...

ciao...
BruNews, MVP VC++
Messages postés
47
Date d'inscription
mercredi 25 mai 2005
Statut
Membre
Dernière intervention
29 juin 2005

Tu fais un switch à l'intérieur d'un autre switch?



Et c'est dans les case 0 1 2 etc que tu modifies les valeurs de ArrayAttributs?

WM_TIMER, c'est bien pour effectuer une opération à chaque interval de
temps défini dans le SetTimer() ?? (j'ai bie lu les différents tutos :)
)



Ok merci je crois que j'ai compris, seulement, comment est ce que ca
peut ralentir la changement des mes attributs, j'arrive pas très bien à
voir...



POurrais tu m'expliquer stp?



Merci pour tes explications
Messages postés
21041
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
30
ben y a qu'1 seul des case qui est effectué à chaque WM_TIMER dans mon exemple, si tu as réglé SetTimer() sur 1000 alors 1 membre changera par seconde, tu règles comme tu veux.

ciao...
BruNews, MVP VC++
Messages postés
47
Date d'inscription
mercredi 25 mai 2005
Statut
Membre
Dernière intervention
29 juin 2005

Et c'est dans les case(0) etc que l'on fait ca? :
ArrayAttributs[0]+=(GimmeTime(0) -
(temps_intermediaire)); //calcul
du carac



Désolé mais je n'arrive pas à voir comment ca pourrait résoudre mon problème...



Je vois pas comment ca pourrait ralentir vu que ca se base sur l'horloge du système...



Merci quand même Brunews
Messages postés
47
Date d'inscription
mercredi 25 mai 2005
Statut
Membre
Dernière intervention
29 juin 2005

Ou alors, est ce que tu modifies d'abord les valeures en fonction du
temps, et c'est dans les case que tu les remodifies? Je comprend pas
très bien....



Merci :jap: