Delphi-PRAXiS
Seite 3 von 3     123   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Was könnte die Funktion Now: TDateTime; blockieren? (https://www.delphipraxis.net/154292-koennte-die-funktion-now-tdatetime%3B-blockieren.html)

himitsu 11. Sep 2010 13:32

AW: Was könnte die Funktion Now: TDateTime; blockieren?
 
SystemTimeToDateTime liefert also schon die falschen Werte.

Was mir eventuell noch einfällt, wäre, daß irgendwo mit Single anstatt mit Double/TDateTime gerechnet wird und dabei wichtige Informationen weggerundet werden,
aber sowas sollte dann auf allen Rechner und Windowssystemen gleich sein. :gruebel:



Wieviele signifikante Stellen hatte denn Single nochmal?
(diese blöde D2010-OH will es mir nicht verraten)

Bei 8 signifikanten Stellen würde das aktuell etwa ein Intervall von (geschätzten) ~1,5 Minuten ergeben.

mkinzler 11. Sep 2010 13:38

AW: Was könnte die Funktion Now: TDateTime; blockieren?
 
Single hat 7 signifikante Stellen
http://www.delphibasics.co.uk/RTL.asp?Name=Single

Uwe Raabe 11. Sep 2010 15:15

AW: Was könnte die Funktion Now: TDateTime; blockieren?
 
Also wenn alte Projekte den Fehler zeigen und neue nicht, dann kann das eigentlich nur daran liegen, daß die alten Projekte eine andere Sysutils verwenden (da wo Now und SystemTimeToDateTime deklariert sind). Vielleicht sollte man in diese Richtung (Stichwort: Bibliothekspfade) mal weiter suchen?

Angyrtis 10. Feb 2012 16:13

AW: Was könnte die Funktion Now: TDateTime; blockieren?
 
Hi,

sry, ich krame den Thread mal wieder vor, da ich das gleiche Problem habe, allerdings Delphi XE2 Update3, Win7 64bit.

Gibt es da irgendwelche neuen Erkenntnisse?

Gruß Angyrtis

Angyrtis 14. Mär 2013 14:39

AW: Was könnte die Funktion Now: TDateTime; blockieren?
 
Auch wenn es schon ewig her ist. Aber mir ist endlich eine Lösung über den Weg gelaufen. Und falls dann noch jemand verzweifelt, hier ein möglicher Grund:

Und zwar hat bei mir DirectX die Berechnunggenauigkeit global auf Single gesetzt. Damit wird Now ungenau und geht kaputt. Lösung ist also bei mir gewesen:

Code:
procedure DoSthWithNow;
var
  Prec: TFPUPrecisionMode;
begin
  Prec := SetPrecisionMode(pmExtended); //Manuelles Setzen der Berechnungsgenauigkeit auf Extended
  Now; //Call von Now
  SetPrecisionMode(Prec); //Zurücksetzen der ursprünglichen Genauigkeit, sofern erwünscht.
end;


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:50 Uhr.
Seite 3 von 3     123   

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