PDA

Vollständige Version anzeigen : Warteschleife geht nicht


HaWeLL
14.07.2004, 20:23
hey,

ich habe da mal so eine frage..
ich habe folgenden code


Private Sub txt_button_Click()
Me!txt_Button.SpecialEffect = 2
warte (1)
Me!txt_Button.SpecialEffect = 1
End Sub


die warteschleife (in einem modul)

Public Function warte(seconds)

Dim szeit, azeit, Zeit, wzeit

szeit = Timer
azeit = szeit
Zeit = 0

wzeit = seconds

Do Until Zeit > wzeit
azeit = Timer
Zeit = azeit - szeit
Loop

End Function


allerdings macht die nicht das was sie soll bzr nich ganz.

die "warteschleife" (warte (1) wirkt nicht.
das textfeld macht beim clicken nichts.

woranliegt das ?

Johnny Loser
14.07.2004, 20:40
Die Warteschleife funktioniert schon. Ich gehe aber davon aus, daß Du keine Änderungen siehst, da Du dem Control keine Möglichkeit gibst.

Füge mal ein DoEvents ein.

Private Sub txt_button_Click()
Me!txt_Button.SpecialEffect = 2
DoEvents
warte (1)
Me!txt_Button.SpecialEffect = 1
End Sub

HaWeLL
14.07.2004, 21:13
ich hatte da schon noch code stehen habe diesen aber weggelöscht das ergebniss war aber das gleiche ..

aber mit dem DoEvents geht es


perfekt ..

danke

Karlheinz
14.07.2004, 21:15
Hallo,

um ein Programm für eine bestimmte Zeit schlafen ( Warteschlange) zu legen, gibt es einsehr einfache API-Funktion mit Namen Sleep.

Declare Sub Sleep Lib "kernel32" (ByVal dwmilliseconds As Long)

Mit Aufruf
Sleep 1000
wird für eine Sekunde die Ausführung des Programms unterbrochen.

Gruß Karlheinz

HaWeLL
14.07.2004, 21:34
danke .. klappt auch wunderbar ..