(Bien sûr, la dernière procédure, TriggerAndRestartTimer, n'est pas une méthode, et n'est donc pas Self. Cependant, le plus probable de la Timer1Timer procédure ne se soucient pas de la Sender de la propriété, de sorte que vous pouvez envoyer n'importe quoi, comme nil au lieu de Self.)
essayé , pas de travail. Je sais que ça fonctionne. Le faire tout le temps. Pourquoi ne pas travailler? N'est-ce pas la minuterie de réinitialisation, est l'événement à ne pas fireing, n'est-ce pas le code de la compilation, ne l'ordinateur exploser? Cela fonctionne bien. oui, l'événement n'est pas déclenché. l'ordinateur exploser? ROTFLMAO!!!
C'est une correction pour Andreas " réponse: si vous appelez son RestartTimer sur une minuterie a été désactivé, il s' (accidentellement) activer la minuterie. Alors, voici la solution: le ResetTimer procédure.
procedure ResetTimer(Timer: TTimer);VAR OldValue: Boolean;begin
OldValue:= Timer.Enabled;
Timer.Enabled:=FALSE;{ Stop timer }
Timer.Enabled:= OldValue;{ Start the timer ONLY if was enabled before }end;
ou
procedure ResetTimer(Timer: TTimer);beginifNOT Timer.Enabled then EXIT;
Timer.Enabled:=FALSE;{ Stop timer }
Timer.Enabled:=TRUE;{ Start the timer ONLY if was enabled before }end;
Pour ceux qui veulent vraiment pour REDÉMARRER le chronomètre puis Andreas procédure est tout simplement parfait.
Et voici le final/bonne réponse:
UNIT cvTimer;{ ----------------------
Better Timer
------------------------------------ }INTERFACE{$WARN UNIT_PLATFORM OFF}USES
System.Classes, Vcl.ExtCtrls;TYPE
TMyTimer= class(TTimer)
private
public
procedure Reset;end;IMPLEMENTATIONprocedure TMyTimer.Reset;beginifNOT Enabled then EXIT;
Enabled:=FALSE;{ Stop timer }
Enabled:=TRUE;{ Start the timer ONLY if was enabled before }end;procedure Register;begin
RegisterComponents('3rdParty',[TMyTimer]);end;
De la réinitialisation d'un TTimer re-déclencher l'évènement est simple. Lorsque vous désactivez et activez le TTimer, votre timertimeout cas de re-déclencher basé sur son intervalle de temps que vous définissez. Par exemple,
Je suppose que vous avez réellement dire que
Ensuite, pour remettre le chronomètre à zéro, ne
Dans mon "RejbrandCommon.pas" de la bibliothèque standard, j'ai fait défini
Ensuite, chaque fois que j'ai besoin de redémarrer je timer, je viens de faire
Bien sûr, si vous voulez la
OnTimer
procédure (par exemple,Timer1Timer
) pour déclencher avant le redémarrage, vous avez à faireou de définir
(Bien sûr, la dernière procédure,
TriggerAndRestartTimer
, n'est pas une méthode, et n'est donc pasSelf
. Cependant, le plus probable de laTimer1Timer
procédure ne se soucient pas de laSender
de la propriété, de sorte que vous pouvez envoyer n'importe quoi, commenil
au lieu deSelf
.)Je sais que ça fonctionne. Le faire tout le temps. Pourquoi ne pas travailler? N'est-ce pas la minuterie de réinitialisation, est l'événement à ne pas fireing, n'est-ce pas le code de la compilation, ne l'ordinateur exploser?
Cela fonctionne bien.
oui, l'événement n'est pas déclenché.
l'ordinateur exploser? ROTFLMAO!!!
OriginalL'auteur Andreas Rejbrand
C'est une correction pour Andreas " réponse: si vous appelez son RestartTimer sur une minuterie a été désactivé, il s' (accidentellement) activer la minuterie. Alors, voici la solution: le ResetTimer procédure.
ou
Pour ceux qui veulent vraiment pour REDÉMARRER le chronomètre puis Andreas procédure est tout simplement parfait.
Et voici le final/bonne réponse:
OriginalL'auteur Rigel
Il n'y a aucun moyen de le faire lors de la conception. Ont le gestionnaire de désactiver le
TTimer
puis de le ré-activer.OriginalL'auteur Ignacio Vazquez-Abrams
De la réinitialisation d'un TTimer re-déclencher l'évènement est simple. Lorsque vous désactivez et activez le TTimer, votre timertimeout cas de re-déclencher basé sur son intervalle de temps que vous définissez. Par exemple,
Timer1 événement se déclenche lorsque la seconde est la prochaine fois que vous activer et désactiver la minuterie.
OriginalL'auteur ThN