Die Community zu .NET und Classic VB.
Menü

VB 5/6-Tipp 0099: Verzögerung, Delay in ein Programm einbauen

 von 

Beschreibung 

Ein wahrlich langweiliger Tip, mit dem man seinen Thread für eine vorgegebene Zeit in Millisekunden in den Tiefschlaf versetzen kann.
Gegenüber Tipp Tipp 301 können während dieser Zeit keine Events abgefangen werden.
Der Tipp Tipp 576 zeigt, wie beides möglich ist.

Schwierigkeitsgrad:

Schwierigkeitsgrad 1

Verwendete API-Aufrufe:

Sleep

Download:

Download des Beispielprojektes [1,77 KB]

'Dieser Quellcode stammt von http://www.activevb.de
'und kann frei verwendet werden. Für eventuelle Schäden
'wird nicht gehaftet.

'Um Fehler oder Fragen zu klären, nutzen Sie bitte unser Forum.
'Ansonsten viel Spaß und Erfolg mit diesem Source!

'------------- Anfang Projektdatei PROJECT1.VBP -------------
'--------- Anfang Formular "Form1" alias Form1.frm  ---------
' Steuerelement: Schaltfläche "Command1"

Option Explicit

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

Private Sub Command1_Click()
  Sleep (5000)
End Sub
'---------- Ende Formular "Form1" alias Form1.frm  ----------
'-------------- Ende Projektdatei PROJECT1.VBP --------------

Tipp-Kompatibilität:

Windows/VB-VersionWin32sWin95Win98WinMEWinNT4Win2000WinXP
VB4
VB5
VB6

Hat dieser Tipp auf Ihrem Betriebsystem und mit Ihrer VB-Version funktioniert?

Ja, funktioniert!

Nein, funktioniert nicht bei mir!

VB-Version:

Windows-Version:

Ihre Meinung  

Falls Sie Fragen zu diesem Artikel haben oder Ihre Erfahrung mit anderen Nutzern austauschen möchten, dann teilen Sie uns diese bitte in einem der unten vorhandenen Themen oder über einen neuen Beitrag mit. Hierzu können sie einfach einen Beitrag in einem zum Thema passenden Forum anlegen, welcher automatisch mit dieser Seite verknüpft wird.

Archivierte Nutzerkommentare 

Klicken Sie diesen Text an, wenn Sie die 6 archivierten Kommentare ansehen möchten.
Diese stammen noch von der Zeit, als es noch keine direkte Forenunterstützung für Fragen und Kommentare zu einzelnen Artikeln gab.
Aus Gründen der Vollständigkeit können Sie sich die ausgeblendeten Kommentare zu diesem Artikel aber gerne weiterhin ansehen.

Kommentar von Kaputti am 08.01.2007 um 08:02

Schon mal die Prozessorlast beobachtet?
TimeOut() vergessen! API verwenden!
(Sogar eine Berechnung von mit Math.Log() in einer schier endlosen Schleife war günstiger als die TimeOut(), da nur ein Kern meines Pentium4 dafür genutzt wurde Prozessorpower zu verbraten.)

Kommentar von Roland Emmrich am 25.10.2004 um 09:10

Timer von Benjamin Kunz

Ich wollte den Timer für das wiederholte, zeitverzögerte Kopieren einer Spalte aus dem ersten sheet(dort laufen messwerte ein), in ein 2. sheet (Tabelle1) in Excel einbauen. Habe mich da aber völlig verheddert....also ich füge immer an die selbe Stelle in Tabelle1 eine neue Spalte ein und kopiere von der ersten Seite die Spalte dort hinein...Effekt, die Messwert-Spalaten werden nach rechts geschoben und nicht mehr verändert...soweit so gut. Nun wollte ich das mehrfach über eine enstellbare Zeitschleife machen und eben den Timer einsetzen....möglichst noch mit der vorwählbaren zeit 5...600 s, so daß ich nicht jedesmal ins Makro muss, wen ich die Zeit ändere
Tipp??

Kommentar von Benjamin Kunz am 01.09.2004 um 04:00

Boah wenn ich das soch seh, für sowas eine API zu verwenden *gg

hier eine Gleiche Methode ohne APIs :D

Pubic Sub TimeOut(Duration)
StartTimer = Timer
Do While Timer - StartTimer < Duration
X = DoEvents()
Loop
End Sub
' aufruf TimeOut 1 = Wartet 1 Sek. TimeOut 0.5 wartet 500 Millisekunden

:D aber mal ehrlich, das werd ich nie verstehen wieso alle leute gleich auf ne API zurückgreifen :)

Kommentar von Robert Nadler am 07.02.2003 um 11:05

Hallo,

funktioniert auch super unter Excel 97!

Kommentar von Cooler am 24.09.2002 um 15:02

Funtzt ! GEIL THX AN ALLE!

Kommentar von Klaus Frank am 24.09.2001 um 13:59

Hübsches Teil! Dieser Tip funktioniert sogar unter VBA für Word 97.