Attendre entre 2 actions [Résolu]

Messages postés
120
Date d'inscription
mercredi 17 septembre 2003
Dernière intervention
18 mai 2007
- - Dernière réponse : cs_franckydeluka
Messages postés
228
Date d'inscription
mardi 5 avril 2005
Dernière intervention
4 janvier 2008
- 7 juin 2006 à 11:57
Bonjour,

J'aimerais savoir comment faire pour attendre un certain lap de temps entre 2 actions. J'avais pensé utilisé la méthode sleep (de thread), mais cette méthode ne fait que "geler" complétement le programme et ce n'est pas ce que je veux. Je veux que je puisse déplacer ma fenêtre comme si rien n'était, mais que la prochaine action programmée n'est pas lieu tout suite...

En espérant avoir été clair...

Merci
a+
Afficher la suite 

Votre réponse

5 réponses

Meilleure réponse
Messages postés
228
Date d'inscription
mardi 5 avril 2005
Dernière intervention
4 janvier 2008
3
Merci
Salut

je te propose une petite fonction :

Dans ta form ou dans un module (mais dans ce cas-là fonctions publiques) il faut déclarer les 2 fonctions suivantes :

    Private Declare Function GetTickCount Lib "kernel32" () As Long   ' c'est un API windows

    Private Function Pause(ByVal lnbmilliseconds As Long)   'fonction pause avec en paramètre le nombre de millisecondes à attendre
        Dim wait As Long

        wait = GetTickCount + lnbmilliseconds
        Do Until GetTickCount >= wait
            Application.DoEvents()   'DoEvents pour ne pas geler l'application
        Loop
    End Function

Puis ensuite appeler ta fonction pause dans ton code comme ceci :

Pause(100) 'pour 100 millisecondes



++

Deluka.

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 98 internautes ce mois-ci

Commenter la réponse de cs_franckydeluka
Messages postés
338
Date d'inscription
mardi 28 janvier 2003
Dernière intervention
4 novembre 2008
0
Merci
salut
tu travaille avec .Net?

Hassen TUNISIE
Commenter la réponse de cs_hassen
Messages postés
120
Date d'inscription
mercredi 17 septembre 2003
Dernière intervention
18 mai 2007
0
Merci
Bonjour,

Oui, .Net avec le framework 2.0

a+
Commenter la réponse de kiboumz
Messages postés
4066
Date d'inscription
mardi 13 mai 2003
Dernière intervention
23 décembre 2008
0
Merci
Un composant Timer devrait te permettre de faire cela. En VB6, çà donne ceci, mais en VB.NET, çà doit être très similaire.

[...]
action1
Timer1.Enabled = True

[...]

Sub Timer1_Timer()
If Timer.Value = 2000 Then 'délai de 2 secondes
    action2
    Timer1.Enabled = False
End If
End Sub

Manu

--------------------------------------------------------------------------------------------
Avant de poster un message, n'oubliez pas de consulter le reglement.
Commenter la réponse de econs
Messages postés
4066
Date d'inscription
mardi 13 mai 2003
Dernière intervention
23 décembre 2008
0
Merci
Finalement, avec un p'tit SharpDevelop, j'ai pu coder ceci rapidement :

        Public compteur As Long
       
       
        Public Sub New()
            [...]
            compteur=0
            Timer1.Interval=1000
            [...]
        End Sub
       

       
        Private Sub Timer1Tick(sender As System.Object, e As System.EventArgs)
            compteur = compteur+1
            If compteur = 3 Then
                // action2 déclenchée au bout de 3 secondes à mettre ici
                Timer1.Stop()
            End If
           
        End Sub
       
        Private Sub Button1Click(sender As System.Object, e As System.EventArgs)
            // action1 a mettre ici
            Timer1.Start()
        End Sub

Manu
--------------------------------------------------------------------------------------------
Avant de poster un message, n'oubliez pas de consulter le reglement.
Commenter la réponse de econs

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.