Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Äh.. wie kann das sein (Zeitrechnung) (https://www.delphipraxis.net/29920-aeh-wie-kann-das-sein-zeitrechnung.html)

SearchBot 16. Sep 2004 17:36


Äh.. wie kann das sein (Zeitrechnung)
 
Also, ich möchte ca. 30sec. nach einem Start etwas ausführen.

Code:
 start:=now;
...
 if round((now-start)*10000) > 3 then
Witzigerweise stimmt gedanklich alles; wenn die Routine läuft, geht es nie, obwohl die Bedingungen true sind.
:wall:

Zur Überlegung:
now:TDateTime // ist Double
1.0 = 1 Tag
1/86400 = 1 Sec. = 0.000011574
mal 30 (also 30sec.) = 0.000347222
mal 10000 (um es gut runden zu können) = 3.47222...
round(dasda) = 3 oder 4, also in jedem Fall und zeitlich später sowieso: >3

Aber es geht nicht!!!
:gruebel:

Wieso?

alcaeus 16. Sep 2004 17:45

Re: Äh.. wie kann das sein (Zeitrechnung)
 
Hi SearchBot,

warum verwendest du nicht einen Timer mit Interval=30000?

Du könntest aber auch die Startzeit speichern (start := now) und anschließend so überprüfen:

Delphi-Quellcode:
if now > start+EncodeTime(0,0,30,0) then
..
Greetz
alcaeus

Union 16. Sep 2004 18:01

Re: Äh.. wie kann das sein (Zeitrechnung)
 
Warum verwendest Du nicht SecondsBetween?

Sprint 16. Sep 2004 18:26

Re: Äh.. wie kann das sein (Zeitrechnung)
 
Zitat:

Zitat von SearchBot
Also, ich möchte ca. 30sec. nach einem Start etwas ausführen.

Delphi stellt haufenweise Datum & Zeit Funktionen zur Verfügung. Schau doch einfach in die Hilfedatei.
Da wirst du bestimmt das passende finden.
Delphi-Quellcode:
var
  Stop: TDateTime;
begin

  Stop := Now + EncodeTime(0, 0, 30, 0);

  while Stop > Now do
  begin
    Sleep(125);
    Application.ProcessMessages;
  end;

  ShowMessage('Fertig.');

end;

SearchBot 16. Sep 2004 23:59

Re: Äh.. wie kann das sein (Zeitrechnung)
 
:drunken:
Ich Depp!

Ich hab meinen Fehler gefunden.

HIER hab ichs richtig geschrieben
Delphi-Quellcode:
round((now-start)*10000)
Und in meinem Quelltext
Delphi-Quellcode:
(round(now-start)*10000)
Ihr seht den Unterschied?!
:zwinker:

Ouh Mann, sowas hält nur auf; trotzdem Danke für Eure Beteiligung!
:love:


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:32 Uhr.

Powered by vBulletin® Copyright ©2000 - 2022, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2021 by Daniel R. Wolf