1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70
| var
FrmTimer: TFrmTimer;
NbFois :Cardinal; {Variable d'incrémentation}
TimerPers :DWord; {Le ID de notre Timer Personnalisé}
TempsDebut :DWord; {Calculer le temps pris par les Timer}
implementation
{$R *.DFM}
Procedure FctTimeCallBack( uTimerID, uMessage: UINT;
DwUser, Dw1, Dw2: DWord) StdCall;
{Objectif : - Cette procédure est appelé chaque fois que le Timer à écoulé
le nombre de millisecondes que nous lui avons demandez de
claculer. À la création du Timer nous lui avons demandé de
calculer 1 MilliSecondes.}
Begin
Inc( NbFois );
If NbFois >= 100 Then
Begin
TimeKillEvent( TimerPers ); {Destruction du Timer}
FrmTimer.lbTemps.Caption := 'Millisecondes : ' +
IntToStr( GetTickCount - TempsDebut )
+ ' / 100';
FrmTimer.btTTimer.Enabled := True;
FrmTimer.btTimerPers.Enabled := True;
End;
End;
procedure TFrmTimer.TimerTraditionnelTimer(Sender: TObject);
begin
Inc( NbFois );
If NbFois >= 100 Then
Begin
TimerTraditionnel.Enabled := False;
lbTemps.Caption := 'Millisecondes : ' +
IntToStr( GetTickCount - TempsDebut )
+ ' / 100';
btTTimer.Enabled := True;
btTimerPers.Enabled := True;
End;
end;
procedure TFrmTimer.btTTimerClick(Sender: TObject);
{Objectif :Rendre innacessible les deux boutons.
Remmetre la valeur de la variable d'incrémentation à 0.
L'interval du TTimer est 1 Millisecondes...
Démarrer le TTimer traditionnel.}
begin
btTTimer.Enabled := False;
btTimerPers.Enabled := False;
NbFois := 0;
TempsDebut := GetTickCount;
TimerTraditionnel.Interval := 1;
TimerTraditionnel.Enabled := True;
end;
procedure TFrmTimer.btTimerPersClick(Sender: TObject);
{Objectif :Rendre innacessible les deux boutons}
begin
btTTimer.Enabled := False;
btTimerPers.Enabled := False;
NbFois := 0;
TempsDebut := GetTickCount;
TimerPers := TimeSetEvent (1, 0, @FctTimeCallBack, 0, TIME_PERIODIC);
end; |
Partager