angelus314
Messages postés11Date d'inscriptionvendredi 5 octobre 2007StatutMembreDernière intervention 5 décembre 2007
-
5 oct. 2007 à 17:26
angelus314
Messages postés11Date d'inscriptionvendredi 5 octobre 2007StatutMembreDerniè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
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.
angelus314
Messages postés11Date d'inscriptionvendredi 5 octobre 2007StatutMembreDerniè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 !!!
angelus314
Messages postés11Date d'inscriptionvendredi 5 octobre 2007StatutMembreDerniè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
Vous n’avez pas trouvé la réponse que vous recherchez ?
cs_casy
Messages postés7741Date d'inscriptionmercredi 1 septembre 2004StatutMembreDernière intervention24 septembre 201440 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.