RSS
StartseiteKnowledge LibraryTop 10Impressum

2.8 Wie kann ich eine Programm-Pause erreichen?

VB4-VB6

Von:  [Home]

Es gibt verschiedene Möglichkeiten eine Pause zu erzeugen. Eine sehr bekannte Methode ist die Verwendung der Timer-Funktion in einer Do...Loop- Schleife:

Dim Start As Single
Start = Timer
      
Do While Timer < Start + 5    ' 5 Sekunden Pause
  DoEvents
Loop

Das ist aber keine saubere Lösung, weil es bei einem Tageswechsel (Timer- Funktion liefert 0 zurück) nicht mehr funktioniert. Das Ergebnis ist dann eine Endlospause und das Programm hängt. Eine viel bessere Lösung bietet uns Windows mit der API- Anweisung "Sleep" die in der kernel32.dll steckt. Die Deklaration für die Sleep-Anweisung sieht so aus:

Private Declare Sub Sleep Lib "kernel32" Alias _
         "Sleep" (ByVal dwMilliseconds As Long)

Hier wird einfach die Anzahl der Millisekunden für die Wartezeit übergeben, also zum Beispiel:

Sleep 5000

wenn die Pause 5 Sekunden lang sein soll. Es soll aber nicht verschwiegen werden, dass diese Methode die Anwendung komplett schlafen legt, was z.B. der Taskmanager mit dem Status "Keine Rückmeldung" quittiert und auch die Oberfläche nicht mehr aktualisiert wird. Um diesen Effekt zu vermeiden, rufen Sie "Sleep" mit kleineren Intervallen, dafür mehrmals (Schleife) auf.