![]() |
Timer
Hallo,
ich stell mich gerade richtig dumm an, ich glaube es ist ganz einfach aber ich arbeite das erste mal mit einem Timer. Und zwar möchte ich einfach nur auf einem Panel eine zeit hochlaufen lassen und zwar mit sekunden und millisekunden. Wenn diese zeit einen wert überschreitet der sich in einem edit befindet, soll die uhr stoppen... Wie stell ich das am einfachsten an??? |
AW: Timer
Hast du denn schon irgendwelche Tests die du vorweisen kannst?
|
AW: Timer
Im Moment hab ich einen Button der den Timer startet. In dem Timer steht dann folgendes:
procedure TForm1.Timer1Timer(Sender: TObject); var zähler: Real; begin zähler:=zähler+0.1; PZeit.caption:=FloatToStr(zähler); end; Dann setzt es den Timer aber immer wieder auf 0 zurück und zeigt immer 0.1 an... und wie man denn stoppt weiß ich noch nicht so ganz |
AW: Timer
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. |
AW: Timer
Zitat:
Mavarik |
AW: Timer
Ok also zählen tut es schonmal um das ganze zu stoppen dachte ich mir jetzt folgendes:
procedure TForm1.Timer1Timer(Sender: TObject); var zeit:real; begin zeit:=StrToFloat(Edit2.Text); zähler:=zähler+0.1; PZeit.caption:=FloatToStr(zähler); if zähler=zeit then begin Timer1.Enabled:=false; end; end; auch wenn Zähler=zeit ist, führt es die zeile nicht aus... |
AW: Timer
Zitat:
![]() |
AW: Timer
Danke für den Tipp, aber wie löse ich jetzt das Problem mit dem stoppen des Timers?
|
AW: Timer
Zitat:
Entweder nimm integer... bei der Ausgabe kannst du ja wieder durch 1000 teilen oder schreibe den if mit ">=". Zitat:
|
AW: Timer
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:48 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz