Bonjour � tous,
mon probl�me est le suivant: j'ai une fen�tre contenant une TProgressBar, qui appelle une classe ind�pendante qui fait un calcul assez long (import d'un fichier Excel d'une longueur connue): je peux donc, dans ma classe d'import, connaitre la proportion de temps qu'il me reste pour finir l'import. J'essaie donc de mettre � jour la progressBar de la fen�tre, mais �a ne fonctionne pas. Dans mon code, lors de l'appel de ma fonction de classe d'import depuis la fen�tre (lors d'un click), j'envoi le pointeur vers la TProgressBar, que j'utilise dans la classe pour la mettre � jour. Or, la progressBar ne bouge pas � l'�cran. Alors que j'ai pris soin d'ajouter des lignes de raffraichissement juste apr�s la modification de la position: refresh(), repaint() et m�me Application->ProcessMessages()
Ce qui est bizarre, c'est que lorsque j'affiche, avec un MessageBox, la valeur de progress->Position, j'ai la bonne valeur!
Voici un extrait du code:
Merci de vos id�es et suggestions!
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 /**** dans la fenetre ****/ TProgressBar* progress; obj->loadFile(filename, progress); /**** dans la classe ****/ void loadFile(AnsiString filename, TProgressBar* progress){ progress->Min = 0; progress->Max = 100; for (int i=0; i<100; i++){ // import excel progress->Position = i; progress->Refresh(); progress->Repaint(); Application->ProcessMessages(); } }
A bientot
Benz
Partager