Delphi-PRAXiS
Seite 2 von 4     12 34      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Zu einer bestimmten Uhrzeit Aktion ausführen! (https://www.delphipraxis.net/3416-zu-einer-bestimmten-uhrzeit-aktion-ausfuehren.html)

Chriss 13. Mär 2003 08:02

wie? was meinst du mit "zu schnell"`??

is bei mir ein fehler drin?

Luckie 13. Mär 2003 08:06

Ich habe es nur kurz ausprobiert und es ging zufälligerweise.

Chriss 13. Mär 2003 08:08

was heisst "zufälligerweise"? wars genau die uhrzeit, oder warum??

irgendwie muss man doch die zeit angeben können!! :freak:

Luckie 13. Mär 2003 08:09

So rum geht es. Frag mich aber bitte nicht warum. :wiejetzt:
Delphi-Quellcode:
procedure TForm1.Timer1Timer(Sender: TObject);
begin
  caption := TimeToStr(now);
  if TimeToStr(now) >= '09:08:40' then
  begin
    timer1.enabled:=false;
    Showmessage(TimeToStr(now));
  end;
end;

Chriss 13. Mär 2003 08:14

HÄ???
warum läuft oben denn die zeit mit und stoppt soblat der wert erreicht is...


(melde mich gegen 16:00 Uhr wieder...vielleicht hab ich dann ne lösung)

Luckie 13. Mär 2003 08:17

Zitat:

Zitat von Chriss
HÄ???
warum läuft oben denn die zeit mit und stoppt soblat der wert erreicht is...

Was ist denn jetzt kaputt? Ich lasse nur die Zeit in der Titelleiste anzeigen, zur Kontrolle. Und warum das anhält? Also jetzt stellst du aber echt dämliche Frage. Kuck dir den Code noch mal genau an - bitte!

Chriss 13. Mär 2003 08:53

also, in der titalleiste läuft die zeit mit und wenn die gewünschte zeit erreicht ist... stoppt die zeit oben, die message erscheint und das wars! das verstehe ich schon, aber funktionierts so und nicht so, wie wir es vorher vorhatten?!
wie bekomme ich es denn hin, dass ich die zeit in einen edit eingeben kann und der diese zeit dann nimmt, oder aus einem memo?

Luckie 13. Mär 2003 08:56

Ersetzt den hardgecodeten String mit der Uhrzeit doch einfach durch eine Variable oder gleich durch Edit1.Text.

Wie gesagt, wenn ich die aktuelle Zeit in einen String konvertiere und das mit einem String vergleiche geht es. Konvertiere ich den String in eine Uhrzeit geht es nicht. Ich weiß auch nicht warum.

Chriss 13. Mär 2003 09:09

hmm, ja komisch komisch'!
DANKE... jetzt kann ich weiterarbeiten :coder: :coder:

Delphianer 13. Mär 2003 09:29

Hallo

Es gibt drei Funktionen, die mir auf Anhieb einfallen und für das Problem interessant sind:
date: liefert den aktuellen Tag (gerechnet ab 30.12.1899)
time: liefert die Zeit als Bruchteil eines Tages seit Mitternacht
now: liefert Tag und Zeit

beispiel
date: gibt auf meinem PC für heute 37693.0 zzurück
time: gibt für beispielsweise 9:00 den Wert 0.375 zurück
now: heutige Tag 9:00 liefert 37693.375

Die drei Funktionen liefern als Ergebnis TDateTime, was in Wirklichkeit Double ist, und zwar Tage vor dem Komma (bzw. Punkt) und Uhrzeit danach.

Wenn Du also
if now > StrToTime('09:15:00')
kodierst, vergleichst Du heutiges Datum/Uhrzeit mit 9:15 30.12.1899, und das ist ziemlich lange vorbei.
timetostr und strtotime finde ich in dem Zusammenhang auch nicht so gut, da daß davon abhängt, wie Delphi Deinen String interpretiert, und daß ist vom System abhängig.

Lösungvorschlag:
Zeit in double umrechen 9:15 entspricht ((9 * 60) + 15) / 1440
und mit time vergleichen

Viele Grüße


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:46 Uhr.
Seite 2 von 4     12 34      

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