Attendre entre 2 actions

Résolu
kiboumz Messages postés 120 Date d'inscription mercredi 17 septembre 2003 Statut Membre Dernière intervention 18 mai 2007 - 6 juin 2006 à 19:39
cs_franckydeluka Messages postés 228 Date d'inscription mardi 5 avril 2005 Statut Membre 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+

5 réponses

cs_franckydeluka Messages postés 228 Date d'inscription mardi 5 avril 2005 Statut Membre Dernière intervention 4 janvier 2008 1
7 juin 2006 à 11:57
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.
3
cs_hassen Messages postés 338 Date d'inscription mardi 28 janvier 2003 Statut Membre Dernière intervention 4 novembre 2008
6 juin 2006 à 19:44
salut
tu travaille avec .Net?

Hassen TUNISIE
0
kiboumz Messages postés 120 Date d'inscription mercredi 17 septembre 2003 Statut Membre Dernière intervention 18 mai 2007
6 juin 2006 à 19:57
Bonjour,

Oui, .Net avec le framework 2.0

a+
0
econs Messages postés 4030 Date d'inscription mardi 13 mai 2003 Statut Membre Dernière intervention 23 décembre 2008 24
6 juin 2006 à 22:40
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.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
econs Messages postés 4030 Date d'inscription mardi 13 mai 2003 Statut Membre Dernière intervention 23 décembre 2008 24
6 juin 2006 à 22:47
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.
0
Rejoignez-nous