Barre de chargement en fonction du chargement de ma liste

Signaler
Messages postés
4
Date d'inscription
dimanche 14 juillet 2002
Statut
Membre
Dernière intervention
9 mai 2007
-
Messages postés
29
Date d'inscription
lundi 25 mars 2002
Statut
Membre
Dernière intervention
9 octobre 2003
-
Bonjour,

Je debute en visual basic, j'ai une liste qui charge des données dans une listbox! Le prob c que le chargement dure un certain temps et je voudrais mettre une barre de chargement précisant à l'utilisateur l'avancement de cette action ! Comment je pourrais faire ?

Merci d'avance

4 réponses

Messages postés
91
Date d'inscription
samedi 30 mars 2002
Statut
Membre
Dernière intervention
11 octobre 2005

pour remplir ta listbox tu fais une boucle non ?
et bien dans ta boucle tu incrémente la valeur de ta barre de progression (Progressbar1.value) Microsoft Common Control
0
Messages postés
4
Date d'inscription
dimanche 14 juillet 2002
Statut
Membre
Dernière intervention
9 mai 2007

Ben le prob c que ca va pas aller a 100%, car g pas 100 enregistrements, normalment je devrais faire un truc du genre :

form4.ProgressBar1.Max = ?

Mais je sais pas quoi mettre après, tu peux m'aider ?

Merci d'avance
0
Messages postés
91
Date d'inscription
samedi 30 mars 2002
Statut
Membre
Dernière intervention
11 octobre 2005

ben tu fais

progressbar1.value = (nbre d'éléments chargés/nbre d'éléments a charger) *100
0
Messages postés
29
Date d'inscription
lundi 25 mars 2002
Statut
Membre
Dernière intervention
9 octobre 2003

Voilà comment est-ce que moi je fais :
Imagine que ça c ta boucle qui rempli la listbox :
While
form4.ListBox.AddItem ....
Wend

Donc moi ce que je fais, c que je fais une premiére boucle de la même façon mais qui ne remplit rien (pour obtenir le nombre d'élément qui seront ajouter):
Dim NbElem

While
NbElem = NbElem + 1
Wend

While
form4.ListBox.AddItem ....
Wend

Ensuite je devise ce nombre par 100 pour savoir le nombre à ajouter à ta Barre de Chargement à chaque tour de la boucle (ou a chaque ajout dans la listbox):

Dim NbElem
Dim ToDoPlus

Form4.ProgressBar1.min = 0
Form4.ProgressBar1.value = 0
Form4.ProgressBar1.max = 100

While
NbElem = NbElem + 1
Wend

ToDoPlus = NbElem / 100

While
Form4.ProgressBar1.value = Form4.ProgressBar1.value + Fix(ToDoPlus)
form4.ListBox.AddItem ....
Wend

Voilà, et pour éviter que la barre ne dépasse 100 (ce qui provoquerai une erreur) :

Dim NbElem
Dim ToDoPlus

Form4.ProgressBar1.min = 0
Form4.ProgressBar1.value = 0
Form4.ProgressBar1.max = 100

While
NbElem = NbElem + 1
Wend

ToDoPlus = NbElem / 100

While
If (Form4.ProgressBar1.value + Fix(ToDoPlus)) > 100 Then
Form4.ProgressBar1.value = 100
Else:
Form4.ProgressBar1.value = Form4.ProgressBar1.value + Fix(ToDoPlus)
End if

form4.ListBox.AddItem ....
Wend

Voili voilà, si ca marche pas tu peux me mailer à calistx@hotmail.com (file moi aussi ton code au passage ce sera plus simple)
0