Petite progressbar sympathoche, léger effet 3d

Soyez le premier à donner votre avis sur cette source.

Vue 6 830 fois - Téléchargée 1 323 fois

Description

Une petite progress bar pour m'amuser
faites en ce que vous voulez
bon appetit

Source / Exemple :


' Voici la fonction, dans le zip y'a un exemple
' prct = pourcentage à donner à la progressbar
' A mettre dans une form, avec un picturebox nommée "progress"
Public Function ProgressBar(prct As Integer)

' Le pourcentage doit être entre 0 et 100, sinon on l'ajuste
If prct > 100 Then prct = 100
If prct < 0 Then prct = 0

' toute la partie où on dessine
' line par line
' Vous remarquerez que la partie rgb à droite de chaque ligne de code
'précise la couleur de la ligne (rouge + ou - fonçé)
' Ainsi je fait un degradé de + en + clair au début
'puis la couleur devient plus fonçée au fur et à mesure
'cette ligne color le fond de la picturebox en bleu
progress.Line (0, 0)-(progress.Width, progress.Height), RGB(60, 0, 120), BF
progress.Line (0, 0)-(((prct * (progress.ScaleWidth / 100))), 0), RGB(160, 0, 0)
progress.Line (0, 1)-(((prct * (progress.ScaleWidth / 100))), 1), RGB(200, 0, 0)
progress.Line (0, 2)-(((prct * (progress.ScaleWidth / 100))), 2), RGB(230, 0, 0)
progress.Line (0, 3)-(((prct * (progress.ScaleWidth / 100))), 3), RGB(255, 0, 0)
progress.Line (0, 4)-(((prct * (progress.ScaleWidth / 100))), 4), RGB(215, 0, 0)
progress.Line (0, 5)-(((prct * (progress.ScaleWidth / 100))), 5), RGB(200, 0, 0)
progress.Line (0, 6)-(((prct * (progress.ScaleWidth / 100))), 6), RGB(180, 0, 0)
progress.Line (0, 7)-(((prct * (progress.ScaleWidth / 100))), 7), RGB(170, 0, 0)
progress.Line (0, 8)-(((prct * (progress.ScaleWidth / 100))), 8), RGB(160, 0, 0)
' Cette line se dessine sous forme de carré pour compléter l'espace qui reste
'sous les lignes dessinées précedemment
' (sinon il n'y aurait que quelques lignes de dessinées en haut de la progressbar)
' enlevez cette ligne pour voir
If prct > 0 Then progress.Line (0, 9)-(((prct * (progress.ScaleWidth / 100))) - 1, progress.Height), RGB(160, 0, 0), BF

' la je gère l'affichage du texte
' la couleur blanche pour le texte
progress.ForeColor = &HFFFFFF
' la position x du texte au centre de la picturebox
progress.CurrentY = (progress.ScaleHeight - progress.TextHeight("l")) / 2
' la position y du texte au centre
progress.CurrentX = (progress.ScaleWidth - progress.TextWidth(Str(prct) + " %")) / 2

' On affiche le pourcentage
progress.Print Str(prct) + " %"

'et voilà
End Function

Conclusion :


j'attend vos commentaires

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

gmni
Messages postés
91
Date d'inscription
mercredi 6 novembre 2002
Statut
Membre
Dernière intervention
20 mars 2009

tres simple, tres utile...
MadM@tt
Messages postés
2215
Date d'inscription
mardi 11 novembre 2003
Statut
Membre
Dernière intervention
16 juillet 2009

de rien,
mais je viens juste de modifier cette source et de l'améliorer, maintenant c'est un contrôle, il y a plein de couleur en dégradé et en relief, et c'est beaucoup plus joli.
pour ceux que ça intéresse, voici l'adresse :
http://www.vbfrance.com/code.aspx?ID=23750

@ + tout le monde
cs_daeron
Messages postés
111
Date d'inscription
mardi 8 janvier 2002
Statut
Membre
Dernière intervention
19 décembre 2006

Facile mais fallait y penser ! J'ai toujours voulu une petite progress bar sympa, en voila une bien agréable sans ocx :-)

Merci MadMatt !
MadM@tt
Messages postés
2215
Date d'inscription
mardi 11 novembre 2003
Statut
Membre
Dernière intervention
16 juillet 2009

salut sibi12

bien joué pour ta fonction, je la testerai ce soir parce que la je suis au lycée
lol et ouais :-)

je précise un truc qui peut être utile :
si vous voulez changer la couleur de la progressbar en bleu ou en vert,
il vous suffit d'inverser la position de la valeur R dans la partie RGB de chaque ligne :
exemple:
progress.Line (0, 0)-(((prct * (progress.ScaleWidth / 100))), 0), RGB(0, 160, 0)
au lieu de :
progress.Line (0, 0)-(((prct * (progress.ScaleWidth / 100))), 0), RGB(160, 0, 0)
etc...
bonne chance...
sibi12
Messages postés
337
Date d'inscription
jeudi 19 décembre 2002
Statut
Membre
Dernière intervention
15 avril 2006

Salut,

Je me suis permis de modifier ta source pour l'adapter à toute les tailles. J'espère que ça te dérange pas que je la mette ici..
Si ça peut servir à quelqu'un...la voilà

Public Function ProgressBar(prct As Integer)

If prct > 100 Then prct = 100
If prct < 0 Then prct = 0

Progress.Line (0, 0)-(Progress.Width, Progress.Height), RGB(60, 0, 120), BF

For i = 0 To Int(Progress.Height / 8 * 3)
Rouge = 160 + (i / (Progress.Height / 8 * 3)) ^ (3 / 5) * (255 - 160)
Progress.Line (0, i)-(((prct * (Progress.ScaleWidth / 100))), i), RGB(CInt(Rouge), 0, 0)
Next i
For i = 0 To Int(Progress.Height / 8 * 5)
Rouge = 255 + (i / (Progress.Height / 8 * 5)) * (160 - 255)
Progress.Line (0, Progress.Height / 8 * 3 + i)-(((prct * (Progress.ScaleWidth / 100))), Progress.Height / 8 * 3 + i), RGB(CInt(Rouge), 0, 0)
Next i

Progress.ForeColor = &HFFFFFF
Progress.Font.Name = "Tahoma"
Progress.Font.Size = Progress.Height * 5 / 8
Progress.CurrentY = (Progress.ScaleHeight - Progress.TextHeight("l")) / 2
Progress.CurrentX = (Progress.ScaleWidth - Progress.TextWidth(Str(prct) + " %")) / 2
Progress.Print Str(prct) + " %"

End Function

Salut...

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.