![]() |
"tickende" uhr mit nur einer zeitmessung
ok, das problem ist folgendes:
soetwas wie hier ist sehr einfach: ![]() es wird einfach die funktion time bzw. gettime benutzt und mittels TimeToStr() in einem label ausgegeben. mein problem ist: ich bekomme nur einen einzigen string in diesem format: "YY/MM/DD,hh:mm:ss" wobei mir der erste teil mit dem datum relativ egal ist. wie lässt sich der text hinter dem komma ausgeben? so, wenn die uhrzeit extrahiert ist, muss ich das ganze in dieses TDateTime konvertieren. wie lässt sich also z.B. "12:00:00" in das TDateTime Format umwandeln? jetz wirds schwer. ich hab nen timer mit interval 1000(=1sek) jetzt muss ich jedesmal eine sekunde dazurechnen. aber wie mach ich das mit diesem komischen format TDateTime? um rechnen zu können muss ich ja erstmal in float konvertieren oder geht das anders? ich weiss, is ein bisserl kompliziert, bin froh, wenn ihr lösungen von teilproblemen habt. |
Re: "tickende" uhr mit nur einer zeitmessung
Hi,
Zitat:
Zitat:
Delphi-Quellcode:
var
s: String; begin s:= 'YY/MM/DD,hh:mm:ss'; caption:= Copy(s, length(s)- 7, 8); Zitat:
Delphi-Quellcode:
var
d: TDateTime; begin d:= StrToTime('12:00:00'); Zitat:
Delphi-Quellcode:
var
d: TDateTime; begin TryEncodeTime(12,0,2,0,d); Caption := TimeToStr(d); |
Re: "tickende" uhr mit nur einer zeitmessung
Um die Stichworte zu vervollständigen:
EncodeTime, EncodeDate DecodeTime, DecodeDate TimeToStr, StrToTime DateToStr, StrToDate Desweiteren sollte man die lokalen Einstellungen brücksichtigen. Mein Datumsformat ist zum Beispiel yyyy-mm-dd. |
Re: "tickende" uhr mit nur einer zeitmessung
... FormatDateTime, IncMilliSecond, IncSecond, IncMinute, IncIrgendwas kann man auch noch nennen.
|
Re: "tickende" uhr mit nur einer zeitmessung
Zitat:
Delphi-Quellcode:
Caption := TimeToStr(now);
Caption := DateToStr(now) + ' ' + FormatDateTime('hh:nn', now); Caption := FormatDateTime('d. mmmm yyyy' + ' ' + 'hh:nn', now); Caption := FormatDateTime('dddd, d. mmmm yyyy', now); Caption := FormatDateTime('dddd, d. mmmm yyyy' + ' ' + 'hh:nn', now); Zitat:
Delphi-Quellcode:
SCRaT
const
UnixStartDate: TDateTime = 25569.0; VAR TimeZone : Integer; // 1 (für Berlin...) [...] function DateTimeToUnix(Datum: TDateTime) : Integer; begin Result := Round((Datum - UnixStartDate) * 86400) - 3600 - (3600*TimeZone); end; function UnixToDateTime(Timestamp: Integer) : TDateTime; begin Result := ((Timestamp+3600+TimeZone*3600) / 86400) + UnixStartDate; end; |
Re: "tickende" uhr mit nur einer zeitmessung
Zitat:
Benutze einen TTimer, den stellst Du auf 1000 ms. Im OnTimer-Ereignis des Timers holst Du Dir die Zeit mit getTime. Diese wandelst Du mit TimeToStr oder FormatDateTime in das gewünschte Format um. Anschliessend zeigst Du die Zeit im Label an. Viel schneller, ohne Rechnen und super simpel. Hilfe zu diesen Funktionen findest Du in der Delphi-Hilfe. Programmieren musst Du das aber noch selber... |
Re: "tickende" uhr mit nur einer zeitmessung
ganz ohne timer und supereinfach:
Delphi-Quellcode:
var startzeit, stopzeit: TTime; begin startzeit := now; // irgendetwas ausführen stopzeit := now; StatusBar1.Panels[1].Text := formatdatetime('hh:nn:ss:zzz', (stopzeit - startzeit)); end; |
Re: "tickende" uhr mit nur einer zeitmessung
Zitat:
|
Re: "tickende" uhr mit nur einer zeitmessung
Zitat:
Ehrlich gesagt, weiß ich auch gar nicht so recht, was der Threadersteller genau möchte. Für eine reine Zeitmessung würde ich die Lösung von Nachteule nehmen. Soll es eher eine "Uhr" werden, wird wohl ein Timer - Beispiele sind ja jetzt genug da :-) - eher in Frage kommen. SCRaT |
Re: "tickende" uhr mit nur einer zeitmessung
Du hättest mich mal erleben sollen, als ich von TDateTime und dessen Hilfsfunktionen noch nichts wußte. Da hab ich auch schlimme Sachen mit Strings angestellt ... :oops:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:18 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz