Utilisation de l'API sleep en vb6 [Résolu]

yvesdudu 48 Messages postés jeudi 16 août 2007Date d'inscription 3 juin 2018 Dernière intervention - 26 juil. 2009 à 08:38 - Dernière réponse : PCPT 13368 Messages postés lundi 13 décembre 2004Date d'inscription 3 février 2018 Dernière intervention
- 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.
Afficher la suite 

Votre réponse

4 réponses

Meilleure réponse
PCPT 13368 Messages postés lundi 13 décembre 2004Date d'inscription 3 février 2018 Dernière intervention - 26 juil. 2009 à 10:19
3
Merci
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]

Merci PCPT 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 101 internautes ce mois-ci

Commenter la réponse de PCPT
Meilleure réponse
cs_ghuysmans99 3983 Messages postés jeudi 14 juillet 2005Date d'inscription 30 juin 2013 Dernière intervention - 26 juil. 2009 à 10:23
3
Merci
De plus, n'essaie même pas de lui passer un flottant en paramètre ...
Elle accepte un long (dword, 4 octets) non signé.

---
VB.NET is good ... VB6 is better

Merci cs_ghuysmans99 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 101 internautes ce mois-ci

Commenter la réponse de cs_ghuysmans99
Meilleure réponse
PCPT 13368 Messages postés lundi 13 décembre 2004Date d'inscription 3 février 2018 Dernière intervention - 26 juil. 2009 à 11:54
3
Merci
[quote=règlement]11.
On pense à laisser un petit message lorsqu'un problème est résolu et à cliquer sur le bouton «réponse acceptée».

Ce bouton sert à valider la ou les réponses qui conviennent au problème indiqué. Il sert aussi de remerciement pour les membres qui ont apporté la/les bonnes réponses. Enfin une réponse validée est bien plus facile à retrouver lors de recherches sur le forum. N'oubliez pas qu'un forum ne sert pas qu'à poser sa question!/quote

Merci PCPT 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 101 internautes ce mois-ci

Commenter la réponse de PCPT
yvesdudu 48 Messages postés jeudi 16 août 2007Date d'inscription 3 juin 2018 Dernière intervention - 26 juil. 2009 à 11:39
0
Merci
Merci pour vos réponses rapides.
En effet je n'avais pas mis le "doevents" , après modif , cela a l'air de mieux se comporter et surtout de pouvoir supprimer les boucles for next de ralentissement que j'avais plaçé entre ma boucle principale.
encore merci et recevez mes cordiales salutations
Commenter la réponse de yvesdudu

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.