![]() |
Dokumentation und Implementation widersprüchlich - An was soll ich mich halten?
Konkretes Beispiel:
Delphi-Quellcode:
-
SysUtils.Now()
![]() Zitat:
Delphi-Quellcode:
Sowohl die WinAPI-Methode
function Now: TDateTime;
var SystemTime: TSystemTime; begin GetLocalTime(SystemTime); with SystemTime do Result := EncodeDate(wYear, wMonth, wDay) + EncodeTime(wHour, wMinute, wSecond, wMilliseconds); end;
Delphi-Quellcode:
als auch die Delphi-Implementation der WinAPI-Struktur
GetLocalTime
Delphi-Quellcode:
kennen Millisekunden:
SYSTEMTIME
Delphi:
Delphi-Quellcode:
WinAPI:
_SYSTEMTIME = record
wYear: Word; wMonth: Word; wDayOfWeek: Word; wDay: Word; wHour: Word; wMinute: Word; wSecond: Word; wMilliseconds: Word; end; TSystemTime = _SYSTEMTIME;
Code:
Ich verwende in meinen Projekten Now() momentan auch so, dass ich die Millisekunden benutze und alles funktioniert auch bestens. Jetzt frage ich mich
typedef struct _SYSTEMTIME {
WORD wYear; WORD wMonth; WORD wDayOfWeek; WORD wDay; WORD wHour; WORD wMinute; WORD wSecond; WORD wMilliseconds; } SYSTEMTIME, *PSYSTEMTIME;
Ich bin gespannt auf Meinungen und Ratschläge. |
AW: Dokumentation und Implementation widersprüchlich - An was soll ich mich halten?
Ich glaube nicht, dass die lügen, sondern der Doku von Microsoft folgten, die wohl dieses Runden mal beinhaltet hat.
Siehe ![]() Diese Doku ist zuletzt in 2012 aktualisiert worden und ein Kommentar von 2011 besagt, dass die Funktion doch Millisekunden auflöst. Das macht nur Sinn, wenn die Doku zu dem Zeitpunkt etwas anderes behauptet hat ;) |
AW: Dokumentation und Implementation widersprüchlich - An was soll ich mich halten?
Destruktive Absichten wollte ich der Doku jetzt nicht unterstellen, vielleicht einfach nur seit 15 Jahren nicht mehr aktualisiert (wie Hinweise, dass 16 Threads schon wirklich sehr viel seien oder Form-Transparenz erst ab einem Pentium 1 mit 90 MHz verfügbar ist) :-D
|
AW: Dokumentation und Implementation widersprüchlich - An was soll ich mich halten?
Ja und?
Letztlich ist das doch Scheingenauigkeit. Ob eine Aufgabe in 200 Millisekunden früher oder später erledigt ist, sollte dem Benutzer egal sein. Falls Du die Millisekunden wirklich brauchst, solltest Du auf andere Quellen zurückgreifen. Gruß K-H |
AW: Dokumentation und Implementation widersprüchlich - An was soll ich mich halten?
Vielleicht ist sein Problem gerade andersrum.
|
AW: Dokumentation und Implementation widersprüchlich - An was soll ich mich halten?
Dass Windows sowieso kein Echtzeit-OS ist und die Genauigkeit der Zeitstempel sowieso nicht sonderlich hoch ist weiß ich auch.
Es geht mir auch nicht wirklich um diesen konkreten Fall von Zeitangaben in Millisekunden, sondern von was ich, im Falle von Embarcadero Delphi tun soll: Mich strikt an die Dokumentation halten denn in Zukunft könnte die bestens funktionierende Implementation geändert werden und zusätzliche Beschränkungen greifen plötzlich - Oder prüfen, ob die Hilfe nicht die Wahrheit spricht und mich an der Implementation orientieren. |
AW: Dokumentation und Implementation widersprüchlich - An was soll ich mich halten?
Zitat:
Rein logisch gesehen würde es überhaupt keinen Sinn machen auf volle Sekunden zu runden. Im Gegenteil - man davon ausgehen, dass die Real-Time-Clocks in moderner Hardware immer besser werden und die Uhrzeit, die man über Now() erhält auf wenige Millisekunden genau sind. |
AW: Dokumentation und Implementation widersprüchlich - An was soll ich mich halten?
Zitat:
|
AW: Dokumentation und Implementation widersprüchlich - An was soll ich mich halten?
[OT]Wenn ich liese, das Meer würde sich teilen, schritte ich hindurch ... ich würde eher auf meine praktischen Erfahrungen setzen und den Quatsch lassen. :stupid:[/OT]
|
AW: Dokumentation und Implementation widersprüchlich - An was soll ich mich halten?
Aber von den Leuten die mutig genug waren, das Unmögliche zu wagen und erfolgreich waren, erzählt man sich noch tausende Jahre nachher.
Zusammenfassend: Frage: Setze ich in Zukunft eher auf die Glaubensgrundsätze die mir die Delphi-Hilfe predigt oder meinen gesunden Menschenverstand? Antwort: Wage, dich deines eigenen Verstandes zu bedienen. Ich habe das Gefühl, grade zu einer gewaltigen Erkenntnis gelangt zu sein...:drunken: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:13 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