Zeit als Formtitel?

Für Fragen von Einsteigern und Programmieranfängern...
Antworten
jaslaz
Beiträge: 58
Registriert: Sa 28. Aug 2010, 18:30
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
CPU-Target: xxBit

Zeit als Formtitel?

Beitrag von jaslaz »

Hallo zusammen,

ich habe so eine Art Wecker programmiert und nun möchte ich das die verbleibende Zeit oben bei der Form als Titel angegeben wird!
Also so:

Code: Alles auswählen

Form1.caption:={verbleibene Zeit};
Kann man überhaupt ein sich immer ändernden Text als Titel nehmen?
Danke schon mal im vorraus! ;)
LG Jaslaz

Socke
Lazarusforum e. V.
Beiträge: 3177
Registriert: Di 22. Jul 2008, 19:27
OS, Lazarus, FPC: Lazarus: SVN; FPC: svn; Win 10/Linux/Raspbian/openSUSE
CPU-Target: 32bit x86 armhf
Wohnort: Köln
Kontaktdaten:

Re: Zeit als Formtitel?

Beitrag von Socke »

Der Text kann sich nicht selber ändern. Also musst du ihn von Zeit zu Zeit (jede Sekunde oder so) manuell ändern. Das könntest du zum Beispiel mit einer Timer-Komponente (Reiter »System«) realisieren
MfG Socke
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein

MAC
Beiträge: 770
Registriert: Sa 21. Feb 2009, 13:46
OS, Lazarus, FPC: Windows 7 (L 1.3 Built 43666 FPC 2.6.2)
CPU-Target: 32Bit

Re: Zeit als Formtitel?

Beitrag von MAC »

Wie socke gesagt hat.
Wenn du die variable X deine noch übrige Zeit ist. dann machst du. Einen Timer der Jede Sekunde Form1.Caption := InttoStr(x) ausgibt.
Du kannst auch TimetoStr(x) ausgeben, dann kommt hh:mm:ss format...

Code: Alles auswählen

Signatur := nil;

Bauer321
Beiträge: 465
Registriert: Sa 21. Aug 2010, 21:30
OS, Lazarus, FPC: Windows 7 Ultimate (L 1.2.2 FPC 2.6.4 32-bit)
CPU-Target: 64-Bit
Wohnort: nahe Bremen
Kontaktdaten:

Re: Zeit als Formtitel?

Beitrag von Bauer321 »

da hab ich nochmal ne frage kann man dann zwei zeiten miteinander subtrahieren?
bzw, wenn man diese vorher in sekunden umrechnen lässt wie errechnet man daraus dann wieder die stunden minuten sekunden(ms lasse ich bewusst weg erstens sind die da nicht drinne zweitens sind die für mich unwichtig)
www.mcpatcher.net | www.hoeper.me

MAC
Beiträge: 770
Registriert: Sa 21. Feb 2009, 13:46
OS, Lazarus, FPC: Windows 7 (L 1.3 Built 43666 FPC 2.6.2)
CPU-Target: 32Bit

Re: Zeit als Formtitel?

Beitrag von MAC »

Zeit , ist nichts anderes als eine Real Zahl.
Du kannst die Subtrahieren , addieren, multiplkizieren quadrieren, genau wie jede andere Zahl auch. z.B: 13,5 bedeuten 13 Tage und 0,5 Tage ( = 12 Stunden) nach einem festgelegtem Datum. Ich glaube unter windows ist dieses festgelegte Datum der 1.1.1900 oder so... Der Pc berechnet dann, welchen Monat das ergibt, ob Schaltjahr, und so nen komliziertes Zeug...

Die 2te frage ist , "naja"^^. Wenn du 60 Sekunden zu früh drann bist. Wieviel minuten sind das ? Richtig durch /60. (Umgekehrrt * 60).
Und /60 / 60 / 24. (sek , min, stunden) macht /86400.

Aber nur mal so als anmerkung , wenn du heute abend minus heute mittag rechnest, dann kommt morgens raus. Aber der Morgen am 1.1.1900; weil heute abernd ca. 12345678.9, heute mittag ca. 12345678.5 ist. das ergebnis wär dann 0.4 : D.H. Du müsstest die Zeiten extrahieren.
zum beispiel:
1. StrtoReal(TimetoStr(12345678.9))
Hier kommt 0.9 aus, aber sehr langsam.
2. 12345678.9 - trunc(12345678.9);
// trunc ist abrunden
Hier das ist schon scvhneller, ich reche Datum + Zeit - (Datum). Zeit bleibt übrig.

Danach rechnest du dann 12345678.9 - 0.5.
oder Zeit1 - (Zeit2 - trunc(Zeit2));

Code: Alles auswählen

Signatur := nil;

creed steiger
Beiträge: 958
Registriert: Mo 11. Sep 2006, 22:56

Re: Zeit als Formtitel?

Beitrag von creed steiger »

Unter den Threadbeispielen im Exampleverzeichnis sollte sich sowas befinden.

Edit:
/examples/multithreading/multithreadingexample1
müsste es sein
Edit2:
http://www.delphibasics.co.uk/RTL.asp?Name=DecodeTime" onclick="window.open(this.href);return false;
hier noch ein bissl Zeitzeugs

Bauer321
Beiträge: 465
Registriert: Sa 21. Aug 2010, 21:30
OS, Lazarus, FPC: Windows 7 Ultimate (L 1.2.2 FPC 2.6.4 32-bit)
CPU-Target: 64-Bit
Wohnort: nahe Bremen
Kontaktdaten:

Re: Zeit als Formtitel?

Beitrag von Bauer321 »

leider will das aber nicht so wie ich es will.

normalerweise müsste ich doch wenn ich den zeitpunkt zum dem die zeit um sein soll minus die aktuelle zeit rechne die restzeit rausbekommen oder sehe ich da was flasch?

Bsp:

Wecker gestellt für 22:00:00 jetzt ist es 21:00:00 also wäre die restzeit 22:00:00 - 21:00:00 = 01:00:00

was ist daran falsch?
www.mcpatcher.net | www.hoeper.me

Socke
Lazarusforum e. V.
Beiträge: 3177
Registriert: Di 22. Jul 2008, 19:27
OS, Lazarus, FPC: Lazarus: SVN; FPC: svn; Win 10/Linux/Raspbian/openSUSE
CPU-Target: 32bit x86 armhf
Wohnort: Köln
Kontaktdaten:

Re: Zeit als Formtitel?

Beitrag von Socke »

Der Typ TDateTime enthält immer einen Tag und die Zeit. Als Zeiten hast du also nie nur eine Uhrzeit sonder auch einen Tag:
Weckzeit: 26.12.2010 22:00:00 Uhr
Jetzt: 26.12.2010 21:00:00 Uhr
Wenn du diese Zeiten miteinander verrechnest erhältst du die Zeitdifferenz in Tagen von genau einer Stunde. Ab jetzt kannst du diesen Wert aber nicht mehr als TDateTime interpretieren, da der Wert 1/24 (eine Stunde, null Tage) dem Datum 30.12.1899 01:00:00 Uhr entspricht. Daher musst du selbst ausrechnen was du willst.
MfG Socke
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein

MAC
Beiträge: 770
Registriert: Sa 21. Feb 2009, 13:46
OS, Lazarus, FPC: Windows 7 (L 1.3 Built 43666 FPC 2.6.2)
CPU-Target: 32Bit

Re: Zeit als Formtitel?

Beitrag von MAC »

übrigenz das gleiche was ich oben auch versucht habe zu erklären :oops:
lösungsanzätze stehen ja schon oben...

Code: Alles auswählen

Signatur := nil;

Bauer321
Beiträge: 465
Registriert: Sa 21. Aug 2010, 21:30
OS, Lazarus, FPC: Windows 7 Ultimate (L 1.2.2 FPC 2.6.4 32-bit)
CPU-Target: 64-Bit
Wohnort: nahe Bremen
Kontaktdaten:

Re: Zeit als Formtitel?

Beitrag von Bauer321 »

joa also ich habs ;)
www.mcpatcher.net | www.hoeper.me

Antworten