VB-Homepage Tipp 183

Zeit (ggf. auch als Timer) mit 1/100 Sek. Angabe

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.

Tipp-Download

Quelle :

Zurück zur Übersichtsseite