salut
je veux savoir comment l'utilisation de ProgressBar en builder c++
Merci
salut
je veux savoir comment l'utilisation de ProgressBar en builder c++
Merci
Une progressbar va de Min à Max
Sa position courante est stockée dans Position (qui est un entier)
Imaginons que tu fasse des boucles imbriquées du style
Tu peux bien sur donner directement une valeur à ta progressbar
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 ProgressBar1.Min = 0; ProgressBar1.Max = 1000 for(int i=0;i<=1000;i++) { ProgressBar1->Position++; // tu incrémentes la position de ta barre à chaque tour }
Si tu veux avoir le pourcentage affiché, utilise le composant CGauge contenu dans Examples (il fonctionne de la meme manière que ProgressBar à l'exception près que Position devient Progress)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 ProgressBar1.Min = 0; ProgressBar1.Max = 100; ProgressBar1.Position = 50; // ta barre est remplie à 50%
![]()
la réponse convient peut être a iamhere. mais moi je ne suis pas trés convaincu par la réponse de tenguryu. c'est vrai que cest simple et compréhensif mais justement c'est bien ca le pb. c'est trop simple.
le progress bar a niveau il ne fait rien , ce que j'entend pas "rien" c'est qu'on voit pas le progressbar se charger (progresser), or là a l'excution on ne voit que la barre bien rempli.
comment faire alors pour la voir progresser.
merci
Pour la voir progresser il y a deux solution, soit faire un appel à la fonction Refresh() dans la boucle for, tel que ceci :
ou sinon, deuxeme solution, tu met le code dans un Timer :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 ProgressBar1.Min = 0; ProgressBar1.Max = 1000; for(int i=0;i<=1000;i++) { ProgressBar1->Position++; // tu incrémentes la position de ta barre à chaque tour Refresh() ; }
constructeur :Evenement OnTimer du composant Timer :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 ProgressBar1.Min = 0; ProgressBar1.Max = 1000;Par contre, la méthode de la fonction Refresh peut provoqué un scintillement de la fenetre, ce qui peut etre désagréable pour l'utilisateur.
Code : Sélectionner tout - Visualiser dans une fenêtre à part ProgressBar1->Position++;
Voila la réponse.
A plus.
salut.
pour voir avancer la progress bar au fur et à mesure, utilise un timer ou fait une pause après chaque incrémentation de la boucle.
voilà. pour moi, ca fonctionne parfaitement
modif ultérieure : même réponse que précédement qui a été posté pendant que j'écrivais ma réponse
Le fait de changer la propriété Position de la progressBar la redessine automatiquement...![]()
Sinonje n'ai pas le temps d'essayer mais ca doit marché.
Code : Sélectionner tout - Visualiser dans une fenêtre à part Application->ProcessMessages();
Euh... je viens de prendre le temps de regarder. et moi je fais rien et la bar progresse normalement et toute seule en plus.
ca dépend peut etre de la version de builder. (ceci n'est q'une supposition)
Partager