Comment faire pour qu'une progressbar ne ralentisse pas tout

Messages postés
54
Date d'inscription
vendredi 28 décembre 2001
Statut
Membre
Dernière intervention
13 mai 2007
-
Messages postés
72
Date d'inscription
mardi 26 février 2002
Statut
Membre
Dernière intervention
20 juin 2003
-
je fais un boucle:
je lis un octet d'un buffer
Je fait une opération dessus, je l'écrit dans un fchier
x=x+1
et on reboucle
Ca prend environ 5 sec
Ensuite je met une progressbar dans la boucle avec
Progressbar1.max = len(Buffer)
et progressbar1.value = x
et là ca prend 30 sec!!!!!!!!
N'y a til pas un moyen pour arrangerr ca
Pourtant je n'ai pas mi de doevents, mais peut-être que la progressbar appel un doevnets
Mystere..........

1 réponse

Messages postés
72
Date d'inscription
mardi 26 février 2002
Statut
Membre
Dernière intervention
20 juin 2003

C'est normal que l'ajout d'un progressBar ralentisse l'opération. Il faut savoir qu'a chaque appel d'un progressBar, Il y a plusieurs opérations effectuées :
- Changement de la valeur de la propriété ;
- Calcul de l'affichage de la barre (partie colorée)
- Rafraîchissement de l'affichage de la barre ;

Les deux premières opérations n'auront que peu d'incidence sur le temps (une ou deux secondes je pense). C'est le réaffichage qui prend du temps. Le seul moyen de réduire le temps ajouté est de réduire le nombre de modifications de la valeur du progressBar en ne l'appelant par exemple que toutes les 100 boucles... ou plus... suivant la taille de ton buffer. En réalité, il n'est nécessaire de l'appeler au maximum qu'un nombre de fois égale au nombre de pixels que la barre de progression fait à l'écran.

J'espère que j'ai répondu à ta question.

(: Sibo ;)