AngeliusMefyrx
Messages postés52Date d'inscriptionlundi 20 mars 2006StatutMembreDernière intervention14 octobre 2007
-
2 oct. 2007 à 22:51
tiblay
Messages postés60Date d'inscriptionmercredi 9 novembre 2005StatutMembreDernière intervention 6 janvier 2009
-
3 oct. 2007 à 00:15
Bonjour,
Pour simplifier les choses, puisque je fais référence a un programme externe et que la rapidité de celui çi n'est pas définis, lorsque je passes des commandes sur cette même application, si un message d'erreur se produit, je veux afficher un compteur qui indique qu'une reconnection est en cour avec un compteur de 14 secondes...
Mon problème c'est que ce code ci fonctionne, mais lorsque je fais des sleep, ca gèle le programme et il vire au blanc...donc finalement mon compteur, je le vois jamais....
Que devrais-je faire pour que le programme ne sois pas gelé?
ErreurInc = 14
...
ErreurConnection:
If ErreurInc > 0 Then
If ErreurInc = 14 Then
Call Frm_Timer.Show(, Me)
Frm_Timer.Lbl_Timer.Caption = "00:14"
End If
Sleep (1000)
ErreurInc = ErreurInc - 1
If Int(ErreurInc) > 9 Then
Frm_Timer.Lbl_Timer.Caption = "00:" & ErreurInc
Else
Frm_Timer.Lbl_Timer.Caption = "00:0" & ErreurInc
End If
Sleep (1000)
ErreurInc = ErreurInc - 1
If Int(ErreurInc) > 9 Then
Frm_Timer.Lbl_Timer.Caption = "00:" & ErreurInc
Else
Frm_Timer.Lbl_Timer.Caption = "00:0" & ErreurInc
End If
Resume
Else
Call MsgBox("Erreur")
ProgBusy = False
Exit Sub
End If
Kristof_Koder
Messages postés918Date d'inscriptionvendredi 3 août 2007StatutMembreDernière intervention27 octobre 200810 2 oct. 2007 à 23:34
Utilise plutot ce bout de code. A mettre dans un module et utiliser la fonction NiceSleep() à la place de Sleep()
Private Declare Function GetTickCount Lib "kernel32" () As Long
Public Sub NiceSleep(msDelay As Long)
Dim msEnd As Long
msEnd = GetTickCount() + msDelay
Do
DoEvents
Loop While GetTickCount() < msEnd
End Sub