Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi TDateTime - Einstellen der Minuten in 5er Schritten? (https://www.delphipraxis.net/58989-tdatetime-einstellen-der-minuten-5er-schritten.html)

Autokrat 15. Dez 2005 14:07


TDateTime - Einstellen der Minuten in 5er Schritten?
 
Hallo,

Ich möchte mittels eines TDateTimePicker dei Eingabe einer Uhrzeit ermöglichen. Im Grunde kein Problem, kind ist auf dtkTime gestellt und das Format auf HH:dd.
Jetzt kann man in der Box die Zeit ganz normal einstellen. Allerdings sollen die Minuten in 5er-Schritten gezählt werden. Kann man den Picker so einstellen, dass er automatisch in 5-Minutenschritten weiterzählt, wenn man auf den Up oder Down Button klickt (also 13:40 ... 13:45 ... 13:50 etc.)?
Wäre schöner als wenn ich die Eingabe erst abwarten müsste um dann aus eingegebenen 13:31 eine 13:30 zu machen...
Mir war so, als ob ich so etwas schon einmal gesehen hätte...

Danke,
Autokrat

mr.unbekannt 15. Dez 2005 14:12

Re: TDateTime - Einstellen der Minuten in 5er Schritten?
 
wo hast du denn die zeiten reingepackt? listox, usw?

Luckie 15. Dez 2005 14:20

Re: TDateTime - Einstellen der Minuten in 5er Schritten?
 
Zitat:

Zitat von mr.unbekannt
wo hast du denn die zeiten reingepackt? listox, usw?

Das ist doch völlig unerhelich.

Da die Komponente wohl leider keine Eigenschaft wie Step besitzt, würde mir jetzt nur einfallen im OnChange das von Hand zu machen.

mr.unbekannt 15. Dez 2005 14:24

Re: TDateTime - Einstellen der Minuten in 5er Schritten?
 
ich würde es auch von hand machen, immer diese fünferschritte. und dann eben der listbox zum beispiel adden!

Autokrat 15. Dez 2005 16:17

Danke!
 
Nachdem ich auch noch einmal nach anderen Komponenten geguckt habe, habei ich das per Hand gelöst, indem ich bei OnExit auf die 5-Minutenschritte runde.
Falls jemand nach so etwas suchen sollte, anbei der kurze Code... geht sicherlich eleganter, aber so oft bin ich garnicht mit Delphi beschäftigt...
Grüsse,
Autokrat

Delphi-Quellcode:
var
    DateTime : TDateTime;
    Stunden, Minuten, Sekunden, Millisek : Word;
begin
    // Aktuelle Uhrzeit ermitteln
    DateTime := Time; //oder eben direkt die zuvor ausgelesene Zeit des TDateTimePickers...
    // Uhrzeit splitten
    DecodeTime(DateTime, Stunden, Minuten, Sekunden, Millisek);
    // Auf 5-Minuten-Schritte runden
    Minuten := 5*Round((Minuten*2)/10);
    // 60 Minuten = 1 Stunde!!!
    if Minuten = 60 then
    begin
      // Minuten auf Null und Stunde eins rauf
      Minuten := 00;
      Stunden := Stunden + 1;
    end;
end;


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:03 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