Afficher des picturebox l'un après l'autre

angelus314 Messages postés 11 Date d'inscription vendredi 5 octobre 2007 Statut Membre Dernière intervention 5 décembre 2007 - 5 oct. 2007 à 17:26
angelus314 Messages postés 11 Date d'inscription vendredi 5 octobre 2007 Statut Membre Dernière intervention 5 décembre 2007 - 8 oct. 2007 à 11:56
Bonjour à tous,

Voilà c'est mon premier post sur ce forum, mais j'ai cherché et je n'y arrive vraiment pas.

Ce que je voudrais faire :

J'ai plusieurs images dans mon form1 qui sont non visible. Je souhaite les rendre visible les uns après les autres avec 1 seconde d'interval quand je clic sur un bouton.

Pour cela, j'ai récupérer ce code pour faire une pause :

Sub FaireUnePause(ByVal NbSec As Long)
        Dim tempotemp
        tempotemp = Now()
        Do Until (DateDiff("s", tempotemp, Now()) > NbSec)
        Loop
    End Sub

Ensuite au clic j'ai fait ceci :

Private Sub butonhelp_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles butonhelp.Click

        fleche1.Visible = True
        Call FaireUnePause(1)
        fleche1.Visible = False
        fleche2.Visible = True

end sub

Le problème c'est qu'en faisant comme cela il ne m'affiche pas mon premier contrôle mais seulement le deuxième.

Donc ensuite j'ai cherché et j'ai trouvé ceci pour faire une pause :
        System.Threading.Thread.Sleep(1000)

J'ai donc placer cette ligne à la place de Call FaireUnePause(1), Mais ca fait la même chose, c'est mon deuxième controle qui apparait et pas le premier.

Je dois faire une erreur quelques part et je ne vois pas ou !!! Si quelqu'un pouvais m'éguiller je lui en serai très reconnaissant.

Merci à vous.

The Matrix has You

6 réponses

cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
5 oct. 2007 à 17:37
Rajoute un DoEvents dans ta boucle Do ... Loop

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #    http://aide-office-vba.monforum.com/index.php
0
angelus314 Messages postés 11 Date d'inscription vendredi 5 octobre 2007 Statut Membre Dernière intervention 5 décembre 2007
6 oct. 2007 à 17:16
Salut,

J'ai déjà essayer de mettre un DoEvents mais VB 2005 express me dit que la variable n'est pas déclaré donc ??? Je dois vraiment pas faire ce qu'il faut !!!

En tous cas merci

The Matrix has You
0
cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
6 oct. 2007 à 17:52
En VB2005, la syntaxe exacte est Application.DoEvents

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #    http://aide-office-vba.monforum.com/index.php
0
angelus314 Messages postés 11 Date d'inscription vendredi 5 octobre 2007 Statut Membre Dernière intervention 5 décembre 2007
8 oct. 2007 à 09:49
Super ca marche vraiment un gros merci !!!

Par contre, et c'est purement informatif, pourquoi avec "System.Threading.Thread.Sleep(1000)" ca ne marche pas, ca fait bien faire une pause au programme normalement non ou on m'aurait menti ???!!!??? ;o)

The Matrix has You
0

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

Posez votre question
cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
8 oct. 2007 à 10:15
Effectivement Sleep fait bien une pause, par contre DoEvents, non!

Sleep suspend l'execution du thread, c'est à dire que ton programme est complètement figé, il ne peut plus executer aucune instruction durant le temps spécifié.

DoEvents, lui, ne suspend pas l'execution du thread, simplement, il "rend la main au système". Le thread reste en execution mais indique à Windows qu'il peut éventuellement etre dérouté quelques instants pour faire autre chose. Windows en profite pour faire traiter les messages systèmes au thread comme par exemple le rafraichissement de la zone d'affichage. Le thread n'étant pas suspendu, il peut effectuer ces taches demandées par le systeme.

Dans le cas de Sleep, le thread est suspendu, il ne peut donc pas traiter les demandes du système, et donc ne rafraichi pas l'écran, entre-autre.

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #    http://aide-office-vba.monforum.com/index.php
0
angelus314 Messages postés 11 Date d'inscription vendredi 5 octobre 2007 Statut Membre Dernière intervention 5 décembre 2007
8 oct. 2007 à 11:56
OK

Merci pour l'info explication très claire. J'ai bien cérné le problème.

Encore merci

The Matrix has You
0
Rejoignez-nous