![]() |
Timer in Schleife verwenden
Hi,
Also ich weiß net was los ist aber ich bekomme das einfach net hin, irgendwie stell ich mich an: Was will ich ? Ich will eine Uhr machen. So... Also die aktuallisierung der Uhr soll über eine schleife gehen. Es soll aber nach jedem durchgang eine Sekunde pause gemacht werden. Wie mach ich das ? MFG |
Re: Timer in Schleife verwenden
Benutz doch einen Timer mit Intervall 1000 (ms), dann wird im OnTimer-Event jede Sekunde etwas getan ;-)
|
Re: Timer in Schleife verwenden
Ja nur wie mache ich...
1. Die schleife ? 2. Den Timer aktivieren das er 1 Sekunde wartet ? Wenn ich nur TTimer1.OnTimer mache will er noch mehr argumente |
Re: Timer in Schleife verwenden
Ich versteh nicht ganz, was du mit der Schlaife meinst :-)
Sobald du den Timer auf Active:=true setzt, wird das OnTimer-Event jede Sekunde unabhängig von allen anderen Sachen ausgeführt. PS: Wenn du Timer1.OnTimer aus einer anderen Prozedur aus aufrufen möchtest, musst du einen Sender angeben, z.B. self oder so. |
Re: Timer in Schleife verwenden
Geht net: Zugriffsverletzung.
Mach doch mal so ein Ding und Poste den Code :-D |
Re: Timer in Schleife verwenden
1 Timer auf der Form; beim mir mit Interval 3000; Active
1 Button auf der Form
Delphi-Quellcode:
Compiliert und funktioniert.
procedure TForm1.Button1Click(Sender: TObject);
begin Timer1.OnTimer(self); end; procedure TForm1.Timer1Timer(Sender: TObject); begin ShowMessage('Geht!!!'); end; |
Re: Timer in Schleife verwenden
Zitat:
[edit]Ultimator war schneller][/edit] |
Re: Timer in Schleife verwenden
Delphi-Quellcode:
procedure TMainForm.Button1Click(Sender: TObject);
Var DateTime : TDateTime; Uhrzeit : string; i : Integer; begin for i := 1 to 5 do begin DateTime := Time; Uhrzeit := TimeToStr(DateTime); StatusBar1.Panels[0].Text := Uhrzeit; Timer1.OnTimer(self); end; end; |
Re: Timer in Schleife verwenden
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo zusammen,
er meint wahrscheinlich sowas wie in der anhängenden Demo. bye Claus |
Re: Timer in Schleife verwenden
Delphi-Quellcode:
DateTime := Time;
Uhrzeit := TimeToStr(DateTime); StatusBar1.Panels[0].Text := Uhrzeit; Das packst du jetzt ins OnTimerEreignis und im ButtonEreignis aktvierst du den Timer. Timer auf ein Interval von 1000ms(besser 500) stellen, damit die Zeitanzeige auch ständig aktualisiert wird. [Edit]Wenn du Duffys Vorschlag nimmst, dann hast du eine schön übersichtliche Lösung.[/Edit] |
Re: Timer in Schleife verwenden
Jo Danke, genau so meinte ichs.
PS: Ich habe damit was neues gelernt. Ich wusste nicht das es so geht, sonst wär mir das gleich gekommen. |
Re: Timer in Schleife verwenden
Zitat:
|
Re: Timer in Schleife verwenden
Ja ok, etwas komisch gesagt :-D
Noch eine frage: Wie kann ich machen das die Uhrzeit gleich von anfang an erscheint und nicht erst nach 1 Sekunde ? |
Re: Timer in Schleife verwenden
Indem du das Label im FormShow-Ereignis zum ersten mal mit der Uhrzeit beschriftest. Also das was jetzt in deiner TimerProcedure steht auch ins FormShow.
bzw. Kannst du am Anfang das Label mit "Initialisiere temporale Visualisierung" beschriften. Sieht fuchsiger aus. ;) |
Re: Timer in Schleife verwenden
Ja stimmt. OK Danke. Ihr seit echt die besten der besten hier.
Und sorry für die dummen fragen. Aber ich bin noch anfänger. |
Re: Timer in Schleife verwenden
rufe einfach im OnCreate die TimerProcedure selbst auf
Delphi-Quellcode:
Timer1Timer(nil);
|
Re: Timer in Schleife verwenden
Zitat:
|
Re: Timer in Schleife verwenden
kleine nebenfrage
wird bei jedem OnTimer ereignis eigentlich jedesmal ein thread aufgemacht ? hab da schonmal probleme gehabt wenn sich das überlappt *g* und das kann ja nur sein, wenns über threading gelöst ist ?! |
Re: Timer in Schleife verwenden
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:00 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