Pause dans un programme vb6 [Résolu]

cs_didine13 96 Messages postés mardi 18 août 2009Date d'inscription 14 août 2013 Dernière intervention - 23 févr. 2011 à 15:00 - Dernière réponse : cs_didine13 96 Messages postés mardi 18 août 2009Date d'inscription 14 août 2013 Dernière intervention
- 23 févr. 2011 à 16:08
Bonjour,
Je viens d'écrire un bout de code qui permet de faire une pause dont que un autre code n'a pas fini sont travail.
Mais le problème les ressources de la mémoire sont trop utilisées.
Voila le bouton de code si vous pouvez m'aider

je vous promets que j'ai cherche dans le forum, mais rien trouver

Merci d'avance

Public Sub Sleepy(Do_Events As Boolean)
Do
If Second(Time) = 50 Then Exit Sub 'ceci est juste un exemple
If Do_Events = True Then DoEvents
Loop
End Sub

Private Sub Command1_Click()
Me.Caption = "Debut"
Sleepy True
Me.Caption = "Suite"
End Sub
Afficher la suite 

Votre réponse

6 réponses

Duke49 553 Messages postés jeudi 12 octobre 2006Date d'inscription 6 juin 2015 Dernière intervention - 23 févr. 2011 à 16:01
+1
Utile
C'est pas bon de stopper l'exécution d'un prog; développe ton projet.

Sinon j'ai pas de code sous la main, alors...
- Evite le threading sous vb6
- Regarde les APIs: OpenProcess & WaitForSingleObject
- Regarde cette API ne fait pas ramer ton prog: Sleep

Sinon sur le site suivant y a un bon Waiteur vb6 à personnaliser:
http://smsoft.ru/en/vbwait.htm
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de Duke49
Duke49 553 Messages postés jeudi 12 octobre 2006Date d'inscription 6 juin 2015 Dernière intervention - 23 févr. 2011 à 15:10
0
Utile
Public Sub SleepEx(ByVal lInterval As Double)
    Dim lTimeNow As Double, lTimeEnd As Double
    lTimeNow = Timer
    lTimeEnd = lTimeNow + lInterval
    Do While Timer < lTimeEnd
        DoEvents
    Loop
End Sub
Commenter la réponse de Duke49
cs_didine13 96 Messages postés mardi 18 août 2009Date d'inscription 14 août 2013 Dernière intervention - 23 févr. 2011 à 15:22
0
Utile
Merci a toi Duke49, mais je ne cherche pas une fonction sleep, mais plutôt une fonction qui

1) Ne bloque pas le programme
2) Attend en temps réels la fin du code pour poursuivre...

Comme l'exemple que j'ai donné plus haut
en faite c'est un problème avec do loop qui bouffe trop de mémoire.

Ce code est juste un exemple, car on peut placer autre chose
If Second(Time) = 50 Then Exit Sub 'ceci est juste un exemple
Commenter la réponse de cs_didine13
cs_didine13 96 Messages postés mardi 18 août 2009Date d'inscription 14 août 2013 Dernière intervention - 23 févr. 2011 à 15:44
0
Utile
trop de mémoire

Processeur erreur de ma part
Commenter la réponse de cs_didine13
cs_didine13 96 Messages postés mardi 18 août 2009Date d'inscription 14 août 2013 Dernière intervention - 23 févr. 2011 à 15:54
0
Utile
bizarre j'ai rajouter sleep 10 le processeur ne bouge plus ca laire de bien fonctionner, mais j'attend vos sucgestion



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

Public Sub Sleepy(Do_Events As Boolean)
Do
Sleep 10
If Second(Time) = 50 Then Exit Sub 'ceci est juste un exemple
If Do_Events = True Then DoEvents
Loop
End Sub

Private Sub Command1_Click()
Me.Caption = "Debut"
Sleepy True
Me.Caption = "Suite"
End Sub
Commenter la réponse de cs_didine13
cs_didine13 96 Messages postés mardi 18 août 2009Date d'inscription 14 août 2013 Dernière intervention - 23 févr. 2011 à 16:08
0
Utile
Sinon sur le site suivant y a un bon Waiteur vb6 à personnaliser:
http://smsoft.ru/en/vbwait.htm


Très bonne source Merci je vais voir tous ça.
Commenter la réponse de cs_didine13

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.