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 ;
}
}