Comment faire pour qu'une progressbar ne ralentisse pas tout

harddisk Messages postés 54 Date d'inscription vendredi 28 décembre 2001 Statut Membre Dernière intervention 13 mai 2007 - 28 juin 2002 à 20:06
SibosisITS Messages postés 72 Date d'inscription mardi 26 février 2002 Statut Membre Dernière intervention 20 juin 2003 - 13 sept. 2002 à 18:05
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

SibosisITS Messages postés 72 Date d'inscription mardi 26 février 2002 Statut Membre Dernière intervention 20 juin 2003
13 sept. 2002 à 18:05
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 ;)
0