Ich hab mal ein wenig was anderes ausprobiert, mit Hilfe der SuFu habe ich folgenden Code gefunden.
Delphi-Quellcode:
procedure TForm1.Timer1Timer(Sender: TObject);
VAR
EndDatum : TDateTime;
Aktuell : TDateTime;
Dazwischen : Integer;
Tage, Stunden, Minuten, Sekunden : Integer;
BEGIN
// Enddatum eingeben
EndDatum := EncodeDateTime(2008, 1, 1, 0, 0, 0, 0); // = 1.1.2008 0:00 Uhr
// Aktuellen Zeitstempel
Aktuell := Now;
// Sekunden dazwischen ausrechnen
Dazwischen := SecondsBetween(Aktuell, EndDatum);
// Hier kann man nun Sekunden in Tage, Stunden etc. umrechnen, dürfte mathematisch trivial sein
// KEIN Pseudocode mehr!
Tage := Dazwischen div (60*60*24);
Dazwischen := Dazwischen - (Tage * 60 * 60 * 24);
Stunden := Dazwischen div (60*60);
Dazwischen := Dazwischen - (Stunden * 60 * 60);
Minuten := Dazwischen div 60;
Dazwischen := Dazwischen - ( Minuten * 60);
Sekunden := Dazwischen;
// Auf Label anzeigen
Label1.Caption := Format('Noch %d Tage, %d Stunden, %d Minuten und %d Sekunden bis Silvester!', [Tage, Stunden, Minuten, Sekunden]);
end;
Soweit geht das ja auch nur will ich jetzt anstatt einen Coutdown für Sylvester meine Zeit selbst festlegen.
Ich habe es mir in drei Edits vorgestellt. 1 für das Datum, 1für die Uhrzeit und 1 für den auszugebenden Text. Mit dem anderen bin ich bis nu soweit aber die Ausgabe funktioniert nicht so wie sie soll
Delphi-Quellcode:
procedure TForm2.CheckBox9Click(Sender: TObject);
VAR Zeit1, Zeit2, Zeit3, Zeit4, Tage, Stunden, Minuten : Integer;
begin
Zeit1 := StrToInt(Edit3.Text);// HIER
Zeit2 := StrToInt(Edit4.Text);// HIER
Zeit3 := StrToInt(Form1.Panel1.Caption);// HIER
Zeit4 := StrToInt(Form1.Label5.Caption); // HIER
Tage := Zeit4-Zeit1;
Stunden := Zeit3-Zeit2;
IF (CheckBox9.Checked) THEN
Form1.Label4.Show
ELSE
Form1.Label4.Hide;
IF (Edit3.Text <= Form1.Panel1.Caption)
AND (Edit4.Text <= Form1.Panel1.Caption)
THEN BEGIN
ShowMessage(Edit5.Text);
Form1.Label4.Caption := FormatDateTime('"Heute ist" dddd, "der" d mmmm yyyy" ', Date);
Form1.Label4.Caption := FormatDateTime('"Noch" %d "Tage", %d "Stunden und" "Minuten bis zum" +Edit5.Text', [Tage,Stunden]);// UND HIER MUSS DER FEHLER SEIN???
END;
end;
Welchen der beiden Codes ich später nehme ist völlig belanglos, wobei ich glaube, das der Obere der besser gewählte ist?!