Einzelnen Beitrag anzeigen

BullsEye

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

Re: Countdown funktioniert nicht richtig?!

  Alt 27. Aug 2008, 22:07
Zitat von DeddyH:
Dann versuch es mal so:DateTimePicker1.Time := trunc(DateTimePicker1.Date) + frac(DateTimePicker2.Time);
So gehts, danke..
Allerdings ist mir gerade aufgefallen, das der Countdown an sicht immer eine Sekunde zu wenig zählt.
BSP: Countdown endet um 00:00:00 und jetzt haben wir es 23:59:55 das macht ja eine Differenz von 5 Sekunden.
Allerdings wird angezeigt "Nur noch 4 Sekunden". Das ist ansich ja nicht das Problem, das Problem ist, das ich 2x die Nachricht (ShowMessage) erhalte!

EDIT: Trick 17 mit selbstüberlistung. Ich zähle einfach Sekunden+1. Allerdings habe ich dann immernoch 2 Nachrichten! Hier der Code:

Delphi-Quellcode:
procedure TForm2.Timer3Timer(Sender: TObject);
VAR
EndDatum : TDateTime;
Aktuell : TDateTime;
Dazwischen : Integer;
Tage, Stunden, Minuten, Sekunden : Integer;
BEGIN
// Countdown
DateTimePicker1.Time := trunc(DateTimePicker1.Date) + frac(DateTimePicker2.Time);
   EndDatum := DateTimePicker1.DateTime;
   Aktuell := Now;
   Dazwischen := SecondsBetween(Aktuell, EndDatum);
   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;
   Form1.Label4.Font.Color := clred;
   Form1.Label4.Caption := Format('%d Tage, %d Stunden, %d Minuten & %d Sekunden bis ' + Edit5.Text + '!', [Tage, Stunden, Minuten, Sekunden+1]);
IF (Tage <= 0) AND (Stunden<=0) AND (Minuten<=0) AND (Sekunden<=0) THEN BEGIN
IF CheckBox10.Checked THEN BEGIN
sndPlaySound(PChar(ExtractFilePath(ParamStr(0)) + 'Wecker.wav'),SND_ASYNC);
END;
ShowMessage('Ihr Countdown ist nun beendet! '+ (Edit5.text));
Form1.Label4.Hide;
CheckBox9.Checked := false;
CheckBox10.Checked := false;
sndPlaySound(nil,0);
END;
END;
  Mit Zitat antworten Zitat