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:
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();
  }
}
Merci de vos idées et suggestions!
A bientot

Benz