Progressbar

0/5 (2 avis)

Vue 5 862 fois - Téléchargée 835 fois

Description

Ce petit code montre comment une ProgressBar, sous forme de 2 PictureBox, permet le comptage d'un timers en pourcentage.
C'est utile, par exemple, pour faire patienter l'utilisateur durant le chargement du logiciel.
Il a été utilisé à la création de mon logiciel PHONE99.

Source / Exemple :


Pour le code, tout est dans le zip.

Codes Sources

A voir également

Ajouter un commentaire Commentaires
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
73
Oui, tu as aussi cette source ( http://www.vbfrance.com/code.aspx?ID=17200 ) qui est un ocx qui reprend le concept de Programmix et qui optionnellement permet d'ajouter un texte devant le poucentage.
Messages postés
1133
Date d'inscription
mercredi 2 octobre 2002
Statut
Membre
Dernière intervention
24 juillet 2011
1
Il en existe déjà quelques unes sur le site...

Personnellement, je préfère limiter la progressbar à un seul picturebox dans lequel se trouve à la fois la ligne de progression et le texte indiquant le pourcentage.

La procédure que j'utilise habituellement (voir ci-dessous), offre ainsi l'avantage de limiter les contrôles à utiliser. Elle permet également de modifier les couleurs de la ligne de progression ainsi que celle du pourcentage lorsque la ligne passe dessus.


Public Sub Progression(ByVal Valeur As Integer, ByVal Max As Integer)

Dim iVal As Integer
Dim sPourcentage As String

'Récupère la valeur de la progression
iVal = Valeur
'Si 0...
If iVal 0 Then iVal 1
'Transforme cette valeur en pourcentage
iVal = (iVal / Max) * 100
'Transforme cette valeur en chaîne
sPourcentage = Format(iVal, "###") & "%"

'Efface le contenu de la PictureBox
Me.Picture1.Cls

'Calcule l'emplacement de la chaîne (au centre de la PictureBox)
Me.Picture1.CurrentX = (Me.Picture1.ScaleWidth - Me.Picture1.TextWidth(sPourcentage)) / 2
Me.Picture1.CurrentY = (Me.Picture1.ScaleHeight - Me.Picture1.TextHeight(sPourcentage)) / 2

'Ecrit la chaîne
Me.Picture1.Print sPourcentage
'Trace une ligne pour indiquer la progression
Me.Picture1.Line (0, 0)-(iVal, Me.Picture1.ScaleHeight), vbMagenta, BF
'Redessine le tout
Me.Picture1.Refresh
'Rend la main au système
DoEvents

End Sub

Remarque, il faut définir absolument définir les propriétés suivantes de la picturebox pour que cela marche

Me.Picture1.AutoRedraw = True
Me.Picture1.ScaleWidth = 100
Me.Picture1.DrawMode = vbNotXorPen

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.