| Autor |
Beitrag |
Goaznic
      
Beiträge: 23
Win XP, Win 7
Delphi 5, Delphi 10
|
Verfasst: Fr 07.10.11 09:18
Ich habe ein Memo mit einer Formatierten Zeit.
Und ich habe einen neuen Wert, ebenfalls formatierte Zeit, in einem Edit.
Mein Ziel ist jetzt eigentlich folgendes:
Delphi-Quelltext 1:
| if 'Zeit aus Memo' - 'Zeit aus Edit' < 0 then | Aber Memo und Edit sind ja String. Wie muss ich das umwandeln? StrToTime geht da ja auch nicht, weil's formatiert ist.
Also beide Zeiten sind aus FormatDateTime('nn:ss:zzz', Startzeit - Time) entstanden.
Moderiert von Narses: Topic aus VCL (Visual Component Library) verschoben am Fr 07.10.2011 um 11:43
Moderiert von Narses: Delphi-Tags hinzugefügt
|
|
Dude566
      
Beiträge: 1592
Erhaltene Danke: 79
W8, W7 (Chrome, FF, IE)
Delphi XE2 Pro, Eclipse Juno, VS2012
|
Verfasst: Fr 07.10.11 10:52
Also ich kann Zeiten dieses Formats so miteinander verrechnen:
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13:
| procedure TForm1.btnShowGapClick(Sender: TObject); var Time1, Time2, GapTime : TDateTime; begin try Time1 := StrToDateTime(edit1.Text); Time2 := StrToDateTime(edit2.Text); GapTime := Time1 - Time2; ShowMessage(TimeToStr(GapTime)); except ShowMessage('Error'); end; end; |
Oder wo liegt dein Problem?
_________________ Es gibt 10 Gruppen von Menschen: diejenigen, die das Binärsystem verstehen, und die anderen.
Für diesen Beitrag haben gedankt: Goaznic
|
|
Narses
      

Beiträge: 10183
Erhaltene Danke: 1256
W10ent
TP3 .. D7pro .. D10.2CE
|
Verfasst: Fr 07.10.11 10:52
Moin!
Goaznic hat folgendes geschrieben : | Ich habe ein Memo mit einer Formatierten Zeit.
Und ich habe einen neuen Wert, ebenfalls formatierte Zeit, in einem Edit.
Mein Ziel ist jetzt eigentlich folgendes:
Delphi-Quelltext 1:
| if 'Zeit aus Memo' - 'Zeit aus Edit' < 0 then | Aber Memo und Edit sind ja String. |
Das hört sich doch nach dem klassischen Anfängerfehler an, visuelle Komponenten zur Datenhaltung zu missbrauchen.  Du solltest die Daten in internen Strukturen im entsprechenden Datenformat aufbewahren und nur zur Anzeige (für den Menschen) umwandeln.
Goaznic hat folgendes geschrieben : | | Wie muss ich das umwandeln? |
Die einzelnen Elemente selbst parsen und dann damit wieder umwandeln:
| DOH hat folgendes geschrieben: | function EncodeTime(Hour, Min, Sec, MSec: Word): TDateTime;
Die Funktion gibt einen Wert des Typs TDateTime zurück, der einer bestimmten Stunde, Minute, Sekunde und Millisekunde entspricht.
Unit
SysUtils
Kategorie
Datum/Zeit
Delphi-Syntax:
Delphi-Quelltext 1:
| function EncodeTime(Hour, Min, Sec, MSec: Word): TDateTime; |
Beschreibung
EncodeTime codiert die angegebenen Werte für Stunde, Minute, Sekunde und Millisekunde in einen Wert des Typs TDateTime.
Für Hour sind Werte von 0 bis 23 zulässig.
Die gültigen Werte für Min und Sec liegen zwischen 0 und 59.
Die gültigen Werte für MSec liegen zwischen 0 und 999.
Befinden sich die angegebenen Werte nicht innerhalb der Bereiche, wird eine EConvertError-Exception ausgelöst.
Der Rückgabewert ist eine Zahl zwischen 0 und 1 (inklusiv), die die angegebene Zeit in Nachkommastellen ausdrückt. Der Wert 0 entspricht Mitternacht, 0.5 ist Mittag, 0.75 ist 18:00 abends usw. |
cu
Narses
_________________ There are 10 types of people - those who understand binary and those who don´t.
Für diesen Beitrag haben gedankt: Goaznic
|
|
Goaznic 
      
Beiträge: 23
Win XP, Win 7
Delphi 5, Delphi 10
|
Verfasst: Fr 07.10.11 10:58
Danke, das scheint die Lösung für mein Problem zu sein. 
|
|
Dude566
      
Beiträge: 1592
Erhaltene Danke: 79
W8, W7 (Chrome, FF, IE)
Delphi XE2 Pro, Eclipse Juno, VS2012
|
Verfasst: Fr 07.10.11 11:07
Aber warum soll er es denn erst "umkodieren" wenn er doch die Zeiten im Format nn:ss:zzz hat? Damit lässt sich doch prima rechnen, wie oben in meinem Beispiel.
_________________ Es gibt 10 Gruppen von Menschen: diejenigen, die das Binärsystem verstehen, und die anderen.
|
|
Goaznic 
      
Beiträge: 23
Win XP, Win 7
Delphi 5, Delphi 10
|
Verfasst: Fr 07.10.11 11:36
Ich probier beides mal aus und gebe dann eine Rückmeldung! ;D
--- Moderiert von Narses: Beiträge zusammengefasst---
Also zu Dude566s Idee: Wenn ich StrToDateTime mach, dann bekomme ich eine Meldung '00:05:412 ist keine gültige Datums- und Uhrzeitangabe' oder so ähnlich ...
Jetzt wende ich mich mal der Idee von Narses zu.^^
|
|
Dude566
      
Beiträge: 1592
Erhaltene Danke: 79
W8, W7 (Chrome, FF, IE)
Delphi XE2 Pro, Eclipse Juno, VS2012
|
Verfasst: Fr 07.10.11 17:28
Wie sieht denn der string aus, den du damit in eine Zeit umwandelst?
_________________ Es gibt 10 Gruppen von Menschen: diejenigen, die das Binärsystem verstehen, und die anderen.
|
|
platzwart
      
Beiträge: 1054
Erhaltene Danke: 78
Win 7, Ubuntu 9.10
Delphi 2007 Pro, C++, Qt
|
Verfasst: Fr 07.10.11 22:42
'00:05:412' -> hh:mm:MMM ?
_________________ Wissenschaft schafft Wissenschaft, denn Wissenschaft ist Wissenschaft, die mit Wissen und Schaffen Wissen schafft. (myself)
|
|
Goaznic 
      
Beiträge: 23
Win XP, Win 7
Delphi 5, Delphi 10
|
Verfasst: Mo 10.10.11 11:40
@platzwart: was meinst du mit ??? hh ist doch stunden, mm Minuten und MMM ... keine Ahnung. Aber ich hab Minuten, Sekunden und Millisekunden, also nn:ss:zzz
@Dude566: Also mein String sieht wie gesagt so aus: 00:05:412

|
|
|