![]() |
Re: Silvester Countdown
Und setz den Interval vom Timer am besten auf 999, da der Timer ab und an nicht 100%ig genau geht, kann es sont in seltenen Fällen dazu kommen, dass eine Sekunde übersprungen wird.
|
Re: Silvester Countdown
Zitat:
Aber nachdem du nicht mithilfe des Timers zählst, sondern die Zeit jedes mal neu ausliest, sollte dies kein großer faux-pas sein. ;) Grüße Faux |
Re: Silvester Countdown
Guten Morgen, allerseits.
Ich bin noch Anfänger und sitze momentan im Büro, wo ich kein Delphi installiert habe. Deshalb kann ich meinen Lösungsvorschlag nicht ausprobieren. Ich könnte mir aber folgende Lösung vorstellen: Zielzeitpunkt ist 1.1.2006, also Neujahr := EnCodeDateTime(2006,1,1,0,0,0,0); Mit "Now" erhalte ich die momentane Zeit, z.B. 31.12.2005 - 18:00:00 CountDown := Neujahr - Now sollte dann die Zeit bis Neujahr ergeben und Panel1.Caption := DecodeTime(CountDown) die Zeit bis zum Jahreswechsel anzeigen. Ich hoffe, das funktioniert so. mfg gfjs |
Re: Silvester Countdown
hi,
genau so würde ich es auch machen. Und den ganzen code den es dann gibt, musst du nur noch ins onTimer Ereignis von einem Timer reinschreiben. wenn du es genau haben willst, kannst du ja der intervall auf 1 oder auf 10 stellen, aber immer ein teiler von 1000, sonst könnte es dann doch ziemlich abweichen. was du natürlich auch noch beachten musst, ist, die systemzeit sehr genau einzustellen, sonst nützt auch der kleinste inervall vom timer nichts... gruss urbanbruhin |
Re: Silvester Countdown
netscanner,
wenn du möchtest schicke ich dir den code für mein countdownprojekt gruß kobel |
Re: Silvester Countdown
Zitat:
Wenn ich im Timer-Ereignis immer die Differenz zwischen '1.1.2006 00:00:00' und Jetzt anzeige, ist es absolut egal, wie genau die Systemzeit ist, und wie ich das Timerinterval einstelle, solange es < 1000 ist. Es wird dann garantiert jede Sekunde mindestens einmal die Zeit abgefragt. Wie zeige ich die Differenz an?
Delphi-Quellcode:
Function RemainingTime(aStart, aStop: TDateTime): String;
Var iSeconds, iMins, iHrs, iDays: Int64; Begin iSeconds := Trunc(0.5 + (aStop - aStart) * 86400); // Erstmal Sekunden ausrechnen und aufrunden Result := Format('%.2d sec', [iSeconds Mod 60]); iMins := iSeconds Div 60; // Minuten ausrechnen If iMins = 0 Then Exit; Result := Format('%.2d min, %s', [iMins Mod 60, Result]); iHrs := iMins Div 60; // Stunden ausrechnen If iHrs = 0 Then Exit; Result := Format('%.2d Std, %s', [iHrs Mod 24, Result]); iDays := iHrs Div 24; // Tage ausrechnen Case iDays of 0 : ; 1 : Result := Format('%d Tag, %s', [aSeconds, Result]); Else Result := Format('%d Tage, %s', [aSeconds, Result]); End End; |
Re: Silvester Countdown
Zitat:
Zitat:
|
Re: Silvester Countdown
Zitat:
Zitat:
Zitat:
Grüße Faux |
Re: Silvester Countdown
[quote="urbanbruhin"]
Zitat:
|
Re: Silvester Countdown
@urbanbruhin:
Wenn duwirklich exakt zu Mitternacht den Zeitpunkt haben willst, kannst du ja, je weniger Zeit bis Mitternacht bleibt, das Intervall verkleinern. ;)
Delphi-Quellcode:
Grüße
if secsToEnd < 120 then
Timer1.Interval := secsToEnd * 10; Faux |
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:31 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