Wär das was?
Delphi-Quellcode:
// oben bei private deklarieren:
iMilliSeconds: Integer;
// .....
procedure TForm1.Timer1Timer(Sender: TObject);
begin
Inc(iMilliSeconds, Timer3.Interval);
Panel1.Caption := IntToStr(iMilliSeconds);
if iMilliSeconds = 5000 then
Timer1.Enabled := False;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
iMilliSeconds := 0;
Timer1.Enabled := True;
end;
Der setzt dir "zähler" immer wieder auf 0 zurück, weil "zähler" im Timer selber deklariert ist. Bei jedem Timerdurchlauf gehts dann wieder an den Anfang, also 0.
Die Variable "zähler" (oder wie bei mir iMilliSeconds) muss außerhalb des Timers deklariert werden und darf nur EIN MAL initialisiert (zurückgesetzt) werden. Am besten im Button der auch den Timer startet.
P.S.: wirkliche Millisekunden sind das aber auch nicht. Pro 1000ms die im Panel angezeigt werden kommt es mir so vor, als ob das tatsächlich etwa 1,5 Sekunden wären.