![]() |
Äh.. wie kann das sein (Zeitrechnung)
Also, ich möchte ca. 30sec. nach einem Start etwas ausführen.
Code:
Witzigerweise stimmt gedanklich alles; wenn die Routine läuft, geht es nie, obwohl die Bedingungen true sind.
start:=now;
... if round((now-start)*10000) > 3 then :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? |
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:
Greetz
if now > start+EncodeTime(0,0,30,0) then
.. alcaeus |
Re: Äh.. wie kann das sein (Zeitrechnung)
Warum verwendest Du nicht SecondsBetween?
|
Re: Äh.. wie kann das sein (Zeitrechnung)
Zitat:
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; |
Re: Äh.. wie kann das sein (Zeitrechnung)
:drunken:
Ich Depp! Ich hab meinen Fehler gefunden. HIER hab ichs richtig geschrieben
Delphi-Quellcode:
Und in meinem Quelltext
round((now-start)*10000)
Delphi-Quellcode:
Ihr seht den Unterschied?!
(round(now-start)*10000)
:zwinker: Ouh Mann, sowas hält nur auf; trotzdem Danke für Eure Beteiligung! :love: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:11 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