![]() |
Countdown der auf Now Zeit zurück greift
Hey leute, bin noch n ziemlicher newbie in Sachen Delphi und habe eine Frage.
Ich möchte einen Countdown in meine Form einbauen. Dieser soll die Systemzeit errechnen, berechnen wie lange es von der Systemzeit noch bis 10:00 Uhr dauert und die Restzeit fortlaufend in deinem Label anzeigen. Wie geht das? Es ist also kein normaler Countdown mit festgelegter Zeit sondern mit einer die sich ständig ändert... DAAAANKE schonmal ;) |
Re: Countdown der auf Now Zeit zurück greift
Hi und Herzlich Willkommen in der DP :dp:
Zitat:
Mit der aktuellen Uhrzeit sollte es ja leicht möglich sein, die Zeit bis 10:00 Uhr zu berechnen. Diese Differenz kannst du (z.B. mit einem Timer) jede Sekunde um einen konstanten Wert anpassen und die verbleibende Zeit anzeigen. Gruß Der Unwissende |
Re: Countdown der auf Now Zeit zurück greift
|
Re: Countdown der auf Now Zeit zurück greift
Mahlzeit,
also wie schon oben erwähnt bekommst du über now die aktuelle zeit z.B. so
Delphi-Quellcode:
So ungefähr und Du hast dann in der Variablen AktuelleZeit die gerade zu dem Zeitpunkt aktuelle Zeit drin stehen.
Procedure TfrmFrom1.getTimebuttonclick()
var aktuelleZeit:DateTime; begin aktuelleZeit := (now); end; Dann noch ein edit Feld oder so in dem Du die zu Erreichende Zeit eingibst und diese beiden Zeiten kannst du dann an die Funktionen übergeben die schon genannt wurden wie z.B. MinutesBetween, aber um diese zu verwenden musst Du in den Uses die DateUtils eintragen, ansonsten klappt das nicht. Und wenn Du dann den errechneten Wert zurückbekommen hast kannst Du z.B. den Timer benutzen und statt immer 1 sekunde drauf addieren zu lassen, wird eine abgezogen und bei erreichen von null ein hübscher Sound abgespielt, oder was auch immer Dir dazu einfällt, aber so in etwa würde ich es machen. Gruss Darkchild |
Re: Countdown der auf Now Zeit zurück greift
Hi
so geht's auch. Hier mal ein kleiner Test von mir: Ich habe mal 3 Editfelder und einen Timer auf eine Form gezogen und eine globale Variablen deklariert:
Delphi-Quellcode:
In edit1.Text habe ich '10:00:00' eingetragen= Morgends um 10 ist die Welt....
Differenzzeit :TTime;
In Create die Zeit initialisieren
Delphi-Quellcode:
und im Timer berechnen und visualisieren....
procedure TForm1.FormCreate(Sender: TObject);
begin Edit1.Text:='10:00:00'; //Morgends um 10 ist die Welt.... Edit2.Text:=FormatDateTime('hh:nn:ss',time );//Aktuelle Zeit Differenzzeit :=strToTime(Edit2.Text)-Time; Edit3.Text:=FormatDateTime('hh:nn:ss',Differenzzeit );// der CountDown läuft.. end;
Delphi-Quellcode:
Gruß oldmax
procedure TForm1.Timer1Timer(Sender: TObject);
begin Edit2.Text:=FormatDateTime('hh:nn:ss',time );//Aktuelle Zeit Differenzzeit :=strToTime(Edit1.Text)-Time; Edit3.Text:=FormatDateTime('hh:nn:ss',Differenzzeit );// der CountDown läuft.. if Differenzzeit <0 then Timer1.Enabled:=False end; |
Re: Countdown der auf Now Zeit zurück greift
Hi
Hab grad nochmal die Überschrift gelesen und hab da noch eine Bemerkung zu Die Now-Zeit beinhaltet Datum und Zeit und ist vom Typ TDateTime. Natürlich kann man die auch einsetzen und muß man sogar, wenn man Datumsübergreifend arbeiten will. wenn es allerdings nur um die Zeit geht, also ohne Datumswechsel, dann reicht Time vom Typ TTime. Ist noch jemand, dem ich bei der Verwirrung helfen kann ? :wink: Gruß oldmax |
Re: Countdown der auf Now Zeit zurück greift
Zitat:
in der System.Pas bzw. Controls.pas steht:
Delphi-Quellcode:
Warum ist den dann TTime besser als TDateTime? :gruebel:TDateTime = type Double; TDate = type TDateTime; TTime = type TDateTime; |
Re: Countdown der auf Now Zeit zurück greift
Hi
Tja.... :shock: hab grad mal in der Hilfe nachgesehen, du hast recht. Aber die endgültige Verwirrung bringt dann der Text, das ein TDate nur den Datumsanteil liefert, ohne den Kommateil. ? Trotzdem aber ein TDateTime-Typ ist ? :gruebel: Ach, ich machs wie immer, ich probier und wenn's funnzt, was soll diese Pingeligkeit Also, nur zum Verständnis, im Prinzip ist ein TDatetime eine Realzahl. Die Zahlen vorm Komma sind die Tage seit denm 31.12.1899 und die Zahlen hinter dem Komma die Millisekunden ab Mitternacht... Daran halte ich mich immer, und mit Formatdatetime kann ich halt entsprechend leicht in jeder beliebigen Form ein Datum oder eine Zeit ausgeben. Nun ja, ich quäle mich auch mit Delphi 3 und 4 rum.... wo noch nix mit irgendwas ..Between is. Gruß oldmax |
Re: Countdown der auf Now Zeit zurück greift
Naja zumindest dint es (evtl.) der Übersichtlichkeit ... so kann man sehen was man in der Variabel speichrn wollte ..
Zitat:
|
Re: Countdown der auf Now Zeit zurück greift
Also ich habe auch ein ZeitProblem ( Wer hat das nicht :lol: )
Ich fülle beide edit Boxen im Format '16.32.12' dann die Berechnung : (Ich geh von 2sek unterschied aus) Das Ergebnis benötige ich Minuten zeit:=MinuteSpan(strtotime(edit4.text),strtotime(e dit3.text)); zeit:=0,033333333333333 Periode Berechnung stimmt also nur beim anzeigen : edit1.text:=FormatDateTime('hh:nn:ss',zeit );//Aktuelle Zeit; oder edit1.Text:=timetostr(zeit); bekomme ich als Ergebnis 48 oder 4800 oder das Format '00:48:00' raus. Ich habe absolut keine Ahnung warum ?? |
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:11 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 by Thomas Breitkreuz