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)
Il existe également les méthodes StepIt et StepBy pour faire avancer la ProgressBar (sans passer par une boucle).
Bonjour
Il y a ceci aussi:
A++
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 SendMessage(ProgressBar1->Handle, PBM_SETRANGE, 0, MAKELPARAM(0, 100)); SendMessage(ProgessBar1->Handle, PBM_SETSTEP, MAKEWPARAM(1, 0), 0); SendMessage(ProgressBar1->Handle, PBM_STEPIT, 0, 0); //Debut instruction SendMessage(ProgressBar1->Handle, PBM_STEPIT, 0, 0); //instruction suite SendMessage(ProgressBar1->Handle, PBM_STEPIT, 0, 0); Etc..
super, ça marche![]()
mais y a t'il une une possibilité de changer la couleur du progressbar.
aprés une petite visite ché Mme FAQ me revoila:
y a neilos qui sera sûrement content...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 SendMessage(ProgressBar1->Handle,PBM_SETBARCOLOR,0,clLime);
merci
encore autre chose :le modèle du progressbar n'est pas trés jolie, y a til pas un moyen de le changer. au fait les rectangles ne sont pas fins du tous. je trouve ceux qu'on voit afficher sur internet plus jolie...
Salut !
Tous les objets de la VCL sont des composants standards.
En fait, ils ont été conçus pour répondre à un besoin d'ordre général, ne présentant aucune originalité et ce, de manière délibérée !
Celà dit, on peut quand même jouer avec certains paramètres pour personnaliser l'objet mais pour certains d'entre eux... c'est limite !
Par contre, il est possible avec BCB de créer ses propres composants.
Je pense que l'on a plus vite fait de rédiger une class répondant de facto à ses besoins que de chercher à titiller un composant dont on sait que ce sera limite à un moment ou un autre !
A plus !
tu m'apprend quelque chose, je ne savais pas qu'on pouvait nous même créer nos propres composant, je pensais qu'on était restreint aux composants déjà existant car sinon éventuellement avoir la possibilité de les importer.
mais alors comment faire?
merci handerson...
Bonsoir
Il y a toute 12 composant a creer pour bcb6 sur une page du site.
Si cela peut te servir.
A++
Bonsoir
A la page principale de Developpez.com,
j'ai rechercher dans C & C++,
puit (" a droite ") de la page, C++ builder etc..
http://chgi.developpez.com/compo/
http://c.developpez.com/cours/#bcc
A++
Pour changer la couleur, en jaune par exemple :
Code : Sélectionner tout - Visualiser dans une fenêtre à part SendMessage(ProgressBar1->Handle, PBM_SETBARCOLOR, 0, clYellow);
Partager