Entwickler-Ecke
Grafische Benutzeroberflächen (VCL & FireMonkey) - TTime-Werte verrechen und ausgeben
bf109g.01 - Mi 20.01.10 20:14
Titel: TTime-Werte verrechen und ausgeben
Hallo, ich möchte Folgendes machen:
Mit TMaskEdits möchte ich Uhrzeitgen eingeben, deren zeitl Differenz dann ausgegeben wird.
Stelle mir das so vor:
Eingabe(TMaskEdit1): "23:30"
Eingabe(TMaskEdit2): "08:30"
Ausgabe(showmessage): "09:00"
Weiß aber nicht, wie ich mit den Texten aus dem TMaskEdit umgehen soll, weils doch ein eigener Typ ist und ich nicht weiß, wie ich den umwandeln soll...
Hat jmd eine Idee / Lösung?
Thx :)
Martok - Do 21.01.10 23:22
Ich würde dir eine TDateTimePicker empfehlen. Die kann man so einstellen, dass da eine Zeit eingegeben werden kann.
Über die Eigenschaft .Time kommst du dann an die Zeit ran, ohne selber rechnen müssen.
Die Differenz lässt sich dann mit HourSpan oder einer der anderen Funktionen aus der Ecke berechnen. Theoretisch könntest du auch einfach die Werte voneinander abziehen, aber das kann schiefgehen, da bei TTime-Werten (die eigentlich Fließkommazahlen sind) nicht wirklich definiert ist wie der Teil vor dem Komma aussieht.
bf109g.01 - So 24.01.10 18:54
Martok hat folgendes geschrieben : |
Ich würde dir eine TDateTimePicker empfehlen. Die kann man so einstellen, dass da eine Zeit eingegeben werden kann.
|
DAnke, das klappt.
Martok hat folgendes geschrieben : |
mit HourSpan oder einer der anderen Funktionen |
Wie ist da die Syntax? "Hourspan" scheint der Compiler nicht zu kennen.
Hab jetzt einfach folgendes probiert, das klappt nicht:
Delphi-Quelltext
1:
| datetimepicker3.time:=HourSpan(datetimepicker1.Time,datetimepicker2.time); |
elundril - So 24.01.10 19:02
Deswegen gibt es die Delphi-Hilfe. Die kannst du mit der F1-Taste aufrufen (links oben bei der Tastatur, meistens zwischen ESC und F2 ;))
Die hätte dir nämlich ausgespuckt das du bei uses "DateUtils" dazuschreiben musst und das es dann eigentlich funktionieren sollte. Wenn nicht, dann probier mal
Delphi-Quelltext
1:
| datetimepicker3.time:=HourSpan(datetimepicker1.DateTime,datetimepicker2.DateTime); |
lg elundril
bf109g.01 - So 24.01.10 22:38
elundril hat folgendes geschrieben : |
Deswegen gibt es die Delphi-Hilfe. |
Ja, ich weiß,m ich blick die nur meistens trotzdem nicht... :.-(
Es funktioniert trotzdem nicht: Wenn der Compiler durch die Zeile durch ist, gibt es einen Windows-Fehlerton und datetimepicker3 gibt "00:00:00" aus...
elundril hat folgendes geschrieben : |
Wenn nicht, dann probier mal
Delphi-Quelltext 1:
| datetimepicker3.time:=HourSpan(datetimepicker1.DateTime,datetimepicker2.DateTime); | |
Macht keinen Unterschied. :(
Habs jetzt so umgeschrieben:
Delphi-Quelltext
1: 2:
| test:=HourSpan(dtp1.DateTime,dtp2.Datetime); dtp3.time:=test; |
Im Debug-MOde mit F7 liest der Compiler die Prozedur noch bis zum Ende durch und der Signalton kommt erst ganz am Ende. Direkt davor steht im Fenster links noch 'test'= 0,9999997 oder so. Dann kommt der Ton und die Angabe ist weg...
elundril - So 24.01.10 23:00
aso, sorry! HourSpan gibt auch keine DateTime-Wert zurück!!! HourSpan gibt die Stundenanzahl als Double zurück, mit den Nachkommastellen als Bruchteil von einer ganzen Stunde.
lg elundril
bf109g.01 - Do 28.01.10 00:58
elundril hat folgendes geschrieben : |
die Stundenanzahl als Double zurück |
Gibts dafür keine schönere LÖsung? Habe jetzt bei eig nämlich 0,999999767 stehen und das ist halt blöd...
bf109g.01 - Di 02.02.10 14:39
Frage dazu: Wie kann ich den Datentyp Double bearbeiten?
DoubleToStr? (Wie) Kann ich damit rechnen?
Ansonsten würde ich eben den Doublewert auf 2 NachkommaStellen runden (wie leg ich fest, auf wie viele Stellen ich runden will?) und dann in Stunden und Minuten umrechnen.
Kann ich eig. eine Kommazahl (bspw. 3,5) in TTime ändern?
Möglich wäre vllt. 3,5 in "03:30" (String) umzuschreiben und den String in TTime zu ändern (StrToTTime)...
Ka, ich bin ratlos...
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!