Thema: Delphi Countdown-Brauche Hilfe

Einzelnen Beitrag anzeigen

BullsEye

Registriert seit: 8. Sep 2007
Ort: Werlte
872 Beiträge
 
Delphi 7 Personal
 
#5

Re: Countdown-Brauche Hilfe

  Alt 31. Dez 2007, 09:44
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?!
  Mit Zitat antworten Zitat