Utilisation de l'API sleep en vb6

Résolu
yvesdudu Messages postés 48 Date d'inscription jeudi 16 août 2007 Statut Membre Dernière intervention 3 juin 2018 - 26 juil. 2009 à 08:38
PCPT Messages postés 13278 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 - 26 juil. 2009 à 11:54
bonjour à tous,
J'ai voulu utiliser l'API sleep dans mon code mais je n'arrive pas à avoir une tempo réelle en fonction du code .
Voilà mon bout de code
for x = 1 to 500
sleep 30
label2.top = x
next
ce petit bout de code a pour mission de déplacer verticalement le label mais j'ai beau essayé plusieurs valeurs pour la tempo sleep ,c'est pas cohérant.
jusqu'à 1 c'est très très lent et si je met 0.3 par exemple c'est trop rapide.
Quelqu'un peut il m'expliquer ce phénomène.
Je suis sous XP.
merci d'avance à tous ceux qui voudront bien éclairer ma lanterne.

4 réponses

PCPT Messages postés 13278 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 48
26 juil. 2009 à 10:19
salut,

30ms * 500 ?
15 secondes pour çà...çà va faire un peu long pour l'utilisateur non? ;)
le problème dans ton code est que comme SLEEP freeze l'application, tu ne verras pas le déplacement.
il faut ajouter DOEVENTS

Option Explicit
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)

Private Sub Command1_Click()
    Dim i As Integer
    For i = 1 To 500
        Sleep 2
        Label2.Top = i
        DoEvents
    Next
End Sub


++
[hr]
3
Rejoignez-nous