[C++ Builder] Comment arrêter un Timer

diablo69 Messages postés 15 Date d'inscription   Statut Membre Dernière intervention   -  
 tony -
Bonjour les amis !
J'ai une question avec C++ Builder...

C'est a dire que j'ai crée un Timer dans mon projet pour une animation et je voulais qu'il s'arrête après 15 secondes... Genre quand je le declenche je veux qu'après 15 secondes il s'arrête !

Coment faire ca ?

Bonne journée !
A voir également:

5 réponses

tony
 
Correctif de ma part j'ai oublié l'incrémentation compteur .

void __fastcall TForm1::Timer1Timer(TObject *Sender)
{
const int N = 15000 / Timer1->Interval ; /* 15 secondes*/

/* En static la valeur de cpt est gardée à chaque passage */
static int cpt = 0 ;

/* Test pour réaliser l'arret du timer. */
if (cpt == N) {
Timer1->Enabled = false ;
} else {
/* Incrémentation compteur si on est pas arrivé au 15 secondes*/
cpt++ ;
}
}
1
diablo69 Messages postés 15 Date d'inscription   Statut Membre Dernière intervention  
 
Up c'est vraiment urgent !!
0
le mage guerrier lvl 88
 
Formate :-D
0
AYOUBBETA
 
<nom_de-Ttimer> ->Enabled=false;
exemple:
mytime->Enabled=false ;
0
inizi
 
bonjours,

en effet cela stoppe le timers mais comme savoir depuis combien de temps il tourne?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
tony
 
Bonjour,

Une solution est de créer une variable static à l'intérieur du compteur, de l'initialiser avec 0 et de l'incrémenter a chaque passage dans la méthode OnTimer.

Comme tu connais grace à la propriété Interval l'écart entre deux "top" du timer, il est facile de faire une condition pour l'arret du timer.

Exemple avec Interval = 100ms
Pour arréter le compteur au bout de 15 secondes ( 15000 ms)

il faut donc : N = 1500 / 100 = 150 top timer.


La fonction onTimer ressemblera à ceci :


void __fastcall TForm1::Timer1Timer(TObject *Sender)
{
const int N = 15000 / Timer1->Interval ; /* 15 secondes*/

/* En static la valeur de cpt est gardée à chaque passage */
static int cpt = 0 ;

/* Test pour réaliser l'arret du timer. */
if (cpt == N) {
Timer1->Enabled = false ;
}
}
0