cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 28 févr. 2004 à 12:12
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.
cs_PROGRAMMIX
Messages postés1133Date d'inscriptionmercredi 2 octobre 2002StatutMembreDernière intervention24 juillet 20112 28 févr. 2004 à 08:40
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
28 févr. 2004 à 12:12
28 févr. 2004 à 08:40
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