Je suppose que vous voulez dire en fait que
var
Timer1: TTimer;
Ensuite, pour réinitialiser la minuterie, faire
Timer1.Enabled := false;
Timer1.Enabled := true;
Dans ma bibliothèque standard "RejbrandCommon.pas", je l'ai fait défini
procedure RestartTimer(Timer: TTimer);
begin
Timer.Enabled := false;
Timer.Enabled := true;
end;
Ensuite, chaque fois que j'ai besoin de redémarrer je chronomètre, je fais juste
RestartTimer(Timer1);
Bien sûr, si vous voulez la procédure OnTimer
(par ex. Timer1Timer
) pour déclencher avant le redémarrage, vous devez faire
Timer1.OnTimer(Self);
Timer1.Enabled := false;
Timer1.Enabled := true;
ou définir
procedure TriggerAndRestartTimer(Timer: TTimer);
begin
Timer.OnTimer(nil);
Timer.Enabled := false;
Timer.Enabled := true;
end;
(Bien sûr, la dernière procédure, TriggerAndRestartTimer
, n'est pas une méthode, et donc il n'y a pas Self
. Cependant, très probablement la procédure Timer1Timer
ne se soucie pas de la propriété Sender
, donc vous pouvez simplement envoyer quoi que ce soit, comme nil
au lieu de Self
.)
essayé, ne fonctionne pas. – none
Je sais que ça fonctionne. Faites-le tout le temps. Pourquoi ça ne marche pas? La minuterie n'est-elle pas réinitialisée, l'événement ne se déclenche-t-il pas, le code ne compile-t-il pas, l'ordinateur explose-t-il? –
@none: Cela fonctionne définitivement. – gabr