Warum auch immer Sie es so genau haben wollen, Sie
werden es schon wissen, sonst hätten Sie nicht diesen Tipp gewählt.
Hier also eine Möglichkeit, die aktuelle Uhrzeit bis zur 1/100 Sekunden Genauigkeit
abzufragen. Denkbar wäre auch die Nutzung dieser Funktionalität als Timer, Count Down
Zähler oder um aus zwei ermittelten Zeiten die Differenz (also Dauer) für eine bestimmte
Aktion zu ermitteln.
Sei es wie es sei, hier der Tipp
Die Definition unter Allgemein/Deklarationen
Private Declare Sub GetLocalTime Lib "Kernel32" (lpSystemTime As SYSTEMTIME)
Private Type SYSTEMTIME
wYear As Integer
wMonth As Integer
wDayOfWeek As Integer
wDay As Integer
wHour As Integer
wMinute As Integer
wSecond As Integer
wMilliseconds As Integer
End Type
Der Aufruf
Hier wird als Beispiel die ermittelte Zeit auf vier Label Objekte aufgeteilt und damit
nicht alles umher zappelt, immer erst abgefragt, ob sich der schon angezeigt Wert vom neu
ermittelten Wert unterscheidet.
Um dieses Beispiel zu nutzen, müßten Sie also Ihrer Form vier Label Objekte gönnen und
den folgenden Code in einen Timer einfügen, dessen Intervall Sie auf 1 stellen.
Im Gegensatz zu einer Timerfunktion, die ja theoretisch auch 1/100 Sekunden beherrscht
aber in der Praxis viel zu sehr von äußeren Umständen beeinflußbar ist und somit
ungenau, wird hier die Systemzeit ermittelt, und die läuft im Hintergrund ja korrekt,
selbst wenn Ihre Anzeige ggf. durch andere Prozesse beeinflußt wird.
Dim MyTime As SYSTEMTIME
GetLocalTime MyTime
If Not Label1 = Format(MyTime.wHour, "00") Then Label1 =
Format(MyTime.wHour, "00")
If Not Label2 = Format(MyTime.wMinute, "00") Then Label2 =
Format(MyTime.wMinute, "00")
If Not Label3 = Format(MyTime.wSecond, "00") Then Label3 =
Format(MyTime.wSecond, "00")
Label4 = Mid(MyTime.wMilliseconds, 1, 2)
Sie können nun Ihr Projekt mit F5 testen. |