ProgressBar fluide [Résolu]

KelaireM 16 Messages postés mercredi 20 avril 2016Date d'inscription 5 juillet 2016 Dernière intervention - 10 mai 2016 à 14:39 - Dernière réponse : vb95 1386 Messages postés samedi 11 janvier 2014Date d'inscriptionContributeurStatut 12 décembre 2017 Dernière intervention
- 10 mai 2016 à 18:06
Bonjour à tous! :-)


J'ai créer un logiciel qui comporte, entre autres, une progressBar et un label.
Il contient aussi le bout de code suivant qui sert de timer :

    Friend Sub hbwait(ByVal ms_to_wait As Long)
Dim endwait As Double
endwait = Environment.TickCount + ms_to_wait
While Environment.TickCount < endwait
System.Threading.Thread.Sleep(1)
Application.DoEvents()
End While
End Sub


En fait, la barre de progression se met à jour grâce à un code qui utilise ma fonction hbwait. Seulement, le scintillement de la progressBar se bloque à certains endroit : ce qui rend la chose... graphiquement moche.

J'ai tenté de fluidifier ma progressBar en ajoutant des points, toujours le même problème.
Puis, j'ai analysé le code hbwait, "sleep". J'ai donc suspecté cette mise en veille du code de "mêtre en veille" du scintillement de la progresse bar.

Question dans un premier temps : mon raisonnement est-il juste? Est-ce bien à cause du Sleep?


Deuxième question :

J'ai tenté de supprimer cette ligne (étant donné que je n'ai en fait pas besoin d'endormir le programme). Mais il se passe quelque chose d'étrange : la mise à jour du label ne se fait pas ou est très mauvaise. Par exemple : si mon premier mot affiché est plus long que le second mot affiché, la fin du premier mot est affiché en même temps que le second mot.
De plus, je n'ai plus le scintillement de la progressBar (mais ça, c'est moins grave.)

Pourquoi?


Je vous remercie d'avance de votre réponse! :-)
Afficher la suite 

9 réponses

Répondre au sujet
vb95 1386 Messages postés samedi 11 janvier 2014Date d'inscriptionContributeurStatut 12 décembre 2017 Dernière intervention - 10 mai 2016 à 16:11
0
Utile
Bonjour
Lorsque tu fais la mise à jour du label fais-tu un
Label.Refresh()

Commenter la réponse de vb95
KelaireM 16 Messages postés mercredi 20 avril 2016Date d'inscription 5 juillet 2016 Dernière intervention - 10 mai 2016 à 16:47
0
Utile
3
Bonjour vb95 et merci de ta réponse!

J'ai testé de mettre un refresh après chaque changement de texte. Malheureusement, j'ai toujours le mot1 en arrière plan..
vb95 1386 Messages postés samedi 11 janvier 2014Date d'inscriptionContributeurStatut 12 décembre 2017 Dernière intervention - 10 mai 2016 à 17:00
Tu aurais donc 2 mots qui se chevauchent sur le même label ?
KelaireM 16 Messages postés mercredi 20 avril 2016Date d'inscription 5 juillet 2016 Dernière intervention - 10 mai 2016 à 17:08
Tout à fait, c'est étrange, comme si j'avais mon mot1 puis j'avais collé une étiquette avec le mot 2 par dessus! Et donc si le mot1 est plus long que le mot2, on voit la fin du mot1...
vb95 1386 Messages postés samedi 11 janvier 2014Date d'inscriptionContributeurStatut 12 décembre 2017 Dernière intervention > KelaireM 16 Messages postés mercredi 20 avril 2016Date d'inscription 5 juillet 2016 Dernière intervention - 10 mai 2016 à 17:13
Tu n'aurais pas 2 label qui sont à la même position mais avec celui en premier plan qui aurait comme couleur Transparent
Commenter la réponse de KelaireM
KelaireM 16 Messages postés mercredi 20 avril 2016Date d'inscription 5 juillet 2016 Dernière intervention - 10 mai 2016 à 17:29
0
Utile
3
Mmmh, je viens de remarquer le problème du label...
En fait, je mets aussi 'Application.DoEvents()' du programme de hbwait en commentaire.
Donc si je le place avant de refresh le label, ça marche.

Mais je ne comprend pas son implication, pourquoi il agit sur ce qui est en dehors du programme?
vb95 1386 Messages postés samedi 11 janvier 2014Date d'inscriptionContributeurStatut 12 décembre 2017 Dernière intervention - 10 mai 2016 à 17:38
Je t'avoue que je n'arrive ni à comprendre le problème exact ni la solution que tu y as apportée !
Je ne suis pas devant ton application !
KelaireM 16 Messages postés mercredi 20 avril 2016Date d'inscription 5 juillet 2016 Dernière intervention - 10 mai 2016 à 18:02
Je te remercie de t'être penché sur le problème en tout cas! :-)
vb95 1386 Messages postés samedi 11 janvier 2014Date d'inscriptionContributeurStatut 12 décembre 2017 Dernière intervention > KelaireM 16 Messages postés mercredi 20 avril 2016Date d'inscription 5 juillet 2016 Dernière intervention - 10 mai 2016 à 18:06
De rien
Commenter la réponse de KelaireM

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.