Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   DateTimePicker - Eingegebene Zeit wird nicht übernommen? (https://www.delphipraxis.net/169344-datetimepicker-eingegebene-zeit-wird-nicht-uebernommen.html)

nytaiceman 13. Jul 2012 13:26

DateTimePicker - Eingegebene Zeit wird nicht übernommen?
 
Hallo zusammen,

ich habe auf einer Form ein DateTimePicker, einen Button und einen Timer gestellt.

In den Objekteigenschaften:
DateTimePicker.Format = HH:mm:ss
DateTimePicker.DateMode = DmUpDown

Ziel ist ein einfacher Countdown:
Zeit eingeben, auf START drücken und wenn Zeit bei NULL angekommen ist, ShowMessage ausgeben.

Das mit dem Rückwärtszählen funktioniert bereits einwandfrei, nur übernimmt DateTimePicker nicht die vom Benutzer eingestellte Zeit sondern die beim Programmstart aktuelle.

Delphi-Quellcode:
// === Press START =============================================================
procedure TForm1.Button1Click(Sender: TObject);
begin
// = Start Timer
  Timer1.Enabled := true;
end;

// === Countdown Timer =========================================================
procedure TForm1.Timer1Timer(Sender: TObject);
begin
// = DateTimePicker -1 s
 DateTimePicker1.DateTime := IncSecond(DateTimePicker1.DateTime, -1);

 If DateTimePicker1.DateTime*86400 <= 0 then
 begin
  ShowMessage('countdown abgelaufen');
  timer1.Enabled := false;
 end;

end;
Wie bringe ich DateTimePicker dazu, die vom Benutzer eingestellte Zeit als .DateTime Wert zu verwenden?

DeddyH 13. Jul 2012 13:39

AW: DateTimePicker - Eingegebene Zeit wird nicht übernommen?
 
Zitat:

Delphi-Quellcode:
If DateTimePicker1.DateTime*86400 <= 0 then

Überleg einmal, wann diese Bedingung zutrifft.

Bummi 13. Jul 2012 13:47

AW: DateTimePicker - Eingegebene Zeit wird nicht übernommen?
 
Delphi-Quellcode:
var
 t:TTime;
begin
  DateTimePicker1.DateTime := IncSecond(DateTimePicker1.DateTime, -1);
  Showmessage(DateTimeToStr(DateTimePicker1.Time) +'-'+ FloatToStr(DateTimePicker1.Time));
  t := Frac(DateTimePicker1.Time);
  Showmessage(DateTimeToStr(t) +'-'+ FloatToStr(t));
end;

nytaiceman 13. Jul 2012 14:52

AW: DateTimePicker - Eingegebene Zeit wird nicht übernommen?
 
Ok, das mit der Bedingung habe ich vermutlich falsch gemacht, das muss ich noch anschauen.

Aber ich komme ja gar nicht soweit, weil wenn der Benutzer im DateTimePicker z.B. 10 Sekunden einstellt, wird nach Drücken auf START komischerweise nicht die vom Benutzer eingestellte Zeit übernommen und verrechnet, sondern der beim Programmstart aktuelle Zeitstempel.

Das ist meine eigentliche Frage, danke trotzdem für den Hinweis!


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:51 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz