sym0ne
Messages postés8Date d'inscriptionmardi 10 août 2004StatutMembreDernière intervention24 août 2004
-
13 août 2004 à 15:08
sym0ne
Messages postés8Date d'inscriptionmardi 10 août 2004StatutMembreDernière intervention24 août 2004
-
17 août 2004 à 13:58
Bonjour a tous !
J'ai encore une question stupide :
Voila j'ai dans mon application une fonction qui cherche plein de fichiers sur plusieures machine et donc, ca prends un temps fou. Le problème c'est que pour cette recherche j'utilise deux boucles while() et donc le programme freeze pendant un petit moment... J'ai mis une ProgressBar pour suivre le dérroulement mais il est tellement utilisé par les deux while() qu'il n'affiche meme pas la ProgressBar ...
Y a t-il un moyen pour rendre malgrès ces boucles, la progressbar active et une possibilité de cliquer sur "Arreter la recherche" ?
florenth
Messages postés1023Date d'inscriptiondimanche 1 août 2004StatutMembreDernière intervention17 août 20083 13 août 2004 à 15:20
A l'interieur de tes boucles while il faut que tu mettes Application.ProcessMessages . Cela permet au programme de traiter les messages windows de rafraichisement de la fenêtre.
Si tes boucles whiles sont imbriquées il faut mettre Application.ProcessMessages à l'interieur de ta derniere boucle :
while ce_que_tu_veux dobeginwhile ce_que_tu_veux_d_autre dobegin
Application.ProcessMessages;
// Reste du code
end;end;
Voila.
Ps aux webmasters : on ne peut pas mettre de code dans une question.
Si tu ne te plantes pas ......
tu ne poussera jamais
cs_Kenavo
Messages postés702Date d'inscriptionvendredi 21 mars 2003StatutMembreDernière intervention 1 octobre 20095 13 août 2004 à 17:40
Ou en plaçant, après la modification de la valeur du ProgressBar, l'instruction ProgressBar.Repaint qui force le ré-affichage sans attendre un momment plus "calme"
Ken@vo
____________________
Code, Code, Codec !
Vous n’avez pas trouvé la réponse que vous recherchez ?
florenth
Messages postés1023Date d'inscriptiondimanche 1 août 2004StatutMembreDernière intervention17 août 20083 14 août 2004 à 11:23
Normalement Application.ProcessMessages permet bien au programme de rafraichier la fenêtre.
J'utilise même 5 boucles for imbriquées les unes dans les autres et cela marche tres bien.
" ProgressBar.repaint " rafraichit bien la progressbar mais cela ne permet pas de cliquer sur le bouton Arreter la recherche
Concernant les threads, si on ne maitrise pas trop (comme moi) , je pense qu'il vaut mieux éviter sinon c'est sûr que c'est mieux ...
Ps aux webmasters : on ne peut pas mettre de code dans une question.
Si tu ne te plantes pas ......
tu ne poussera jamais
sym0ne
Messages postés8Date d'inscriptionmardi 10 août 2004StatutMembreDernière intervention24 août 2004 17 août 2004 à 13:58
Ok merci beaucoup tous pour vos réponses...
En fait le Application.ProcessMessages; réagit bien comme attendu c'était juste a cause du TCPClient qui met longtemps pour découvrir qu'une ip n'est pas valide sur le domaine !