Progress bar pour le telechargement d'une page

Soyez le premier à donner votre avis sur cette source.

Snippet vu 9 856 fois - Téléchargée 28 fois

Contenu du snippet

Voila, je cherchais à mettre une progress bar dans mon programe lors du telechargement d'une page, et comme je n'ai rien trouvé de tres simple ou fonctionnel comme exemple de script la dessus, j'ai trouvé une bidouille assez simple avec le composant inet.

Vous avez donc besoin :

. D'un composant inet (INET)
. D'un timer (TIMER)
. D'une progressbar (PROGRESSBAR)
. D'une variable (Public A as integer)

Des que vous telechargez :
. reglez le timer sur 100 ms (timer.interval = 100)
. activer le timer (timer.enabled)
Celui-ci génère un unique évènement Timer dont le code est ci-dessous.
. Inet lors du telechargement de la page génère un code(state) allant de 1 à 12 (variable), transmit par l'évènement INET_StateChanged(ByVal State As Integer).

Recuperer ce code, transmettait le a A pour pouvoir le recuperer dans Private Sub TIMER_Timer() puis examinez le : si il est différent de 11, faite progresser votre barre avec :
"PROGRESSBAR.Value = A"
Si il est égal à 11, la page n'est pas téléchargée, afficher alors un message d'erreur de votre choix.
La fin du téléchargement est donné par la fin d'activité d'INET :
"If INET.StillExecuting = False Then PROGRESSBAR.Value = PROGRESSBAR.Max:"
On met donc la progressbar au max.

Source / Exemple :


' Ouverture de la page web
INET.openurl("urlX")
timer.interval=50
timer.enabled
----------------------------------------------------------------------------------------------
'Evenement généré par le TIMER
Private Sub TIMER_Timer()
'Gestion de la progression du chargement
PROGRESSBAR.Min = 0
PROGRESSBAR.Max = 12
PROGRESSBAR.Value = A
If A = 11 then AFFICHER "Impossible de trouver la page..."
If INET.StillExecuting = False Then PROGRESSBAR.Value = PROGRESSBAR.Max: TIMER.Enabled = False
End Sub
----------------------------------------------------------------------------------------------
'Evenement généré par INET
Private Sub INET_StateChanged(ByVal State As Integer)
'Gestion de la progression du chargement
A = State
End Sub

A voir également

Ajouter un commentaire Commentaires
Messages postés
3
Date d'inscription
lundi 5 mai 2008
Statut
Membre
Dernière intervention
5 mai 2008

je pense que je suis sur la bonne voi qlln peu m aider dans mes calcul svp

Public Class Form1

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
WebBrowser1.Navigate(TextBox1.Text)
Label1.Text = "recherche"
End Sub

Private Sub CopyAvecProgressBar(ByVal WebBrowser1)
' Minumun à 1
ProgressBar1 = 1
'Maximim= nombre total de fichier à copier
ProgressBar1 = WebBrowser1
' On initialise la Progressbar.
ProgressBar1.Value = 1

'On indique le pas.
ProgressBar1.Step = 1

' Boucle de copie
Dim x As interger
For x = 1 To WebBrowser1
' Copier in fichie.
If CopyFile(WebBrowser1(x - 1)) = True Then
'Si la copie est OK incrémenter la Progressbar.
ProgressBar1.PerformStep()
End If
Next x
End Sub
End Class
Messages postés
3
Date d'inscription
lundi 5 mai 2008
Statut
Membre
Dernière intervention
5 mai 2008

slt j ai un petit probleme sa fait 3 jour ke j ai vb et je voudrai mettre un progressbar j arrive pas et qlln coné un bon site pour aprendre les calcule


Public Class Form1

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
WebBrowser1.Navigate(TextBox1.Text)
Label1.Text = "recherche"
End Sub
Private Sub


End Sub
End Class

voisi mes calcul
Messages postés
3
Date d'inscription
lundi 24 avril 2006
Statut
Membre
Dernière intervention
25 septembre 2008

bonjour pour votre programme Progrss Bar pour le téléchargement est pas mal c'est une trés bonne réalisation pour les débutants.
merci trés bien.
à plus.
Messages postés
11
Date d'inscription
lundi 5 janvier 2004
Statut
Membre
Dernière intervention
17 août 2005

Arf, tu as raison, je suis desole, j'aurai du mettre un zip et penser au vrai debutant.

Pour ce qui est d'inet, il marche bien chez moi , pas de plantage, bien stable et tout. Avantage d'inet par rapport au reste (pour moi)

Je telecharge directos le source (pas besoin du reste). Un webbrower est plus legerement plus long, vu qu'il choppe les images tout ca (mais je le connais assez peu, peut etre qu'il est possible de chopper que le source).

@Newsky, c'est incomplet, comment gere tu la fin des downloads ? Je vais essayer de revoir le webbrowser qui as l'air d'etre un control des plus interessant, par contre la doc msn est naze la dessus, lamentable je trouve...
Messages postés
86
Date d'inscription
dimanche 27 janvier 2002
Statut
Membre
Dernière intervention
20 février 2009

moi g fait un truc à la va vite, juste comme ça. c'est juste une trame qui est a rectifié :

Private Sub WebBrowser_ProgressChange(ByVal Progress As Long, ByVal ProgressMax As Long)
ProgressBar1.Max = ProgressMax + 1
If Progress <= 0 Then
ProgressBar1.Value = 1
Else
ProgressBar1.Value = Progress
End If

C'est un contrôle WebBrowser qui gère la ProgressBar, je l'ai fait en 1min, y'avait qq bugs que g rectifié en bricolant mais ça paut peut-être t'aider. bon courage
Afficher les 9 commentaires

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.