Bonjour, ou pourrais je trouver un exemple de ProgressBar? merci
Version imprimable
Bonjour, ou pourrais je trouver un exemple de ProgressBar? merci
Bonjour,
peux-tu expliquer ce que tu veux faire exactement avec ta ProgressBar?
Et surtout ce que tu ne sait pas faire :wink:
Disaons qu' j'ai un petit calcul qui s'effectue qui dure pas tres longtemps (10 seconde) mais je veux que l'utilisateur n'est pas la main pendant ce temps(je disabled tous les boutons) et je voudrais une barre de progression qui progresse pendant un temps variable, le calcul peut durer de 5 a 15 seconde......
Bon ben je vais te montrer comment j'utilise mes ProgressBar et si �a ne te suffit pas n'h�site pas � le dire :wink:
D'abord tu d�finit le Min et le Max pour savoir combien tu auras d'incr�ments possibles
Tu peux aussi mettre des variables enti�res;Code:
1
2
3 ProgressBar->Min = 0; ProgressBar->Max = 100;
Ensuite tu initialise � la valeur Min
Puis tu incr�mentes sa position en fonction de ton code jusqu'� ce que tu atteigne la valeur MaxCode:
1
2ProgressBar->Position = 0;
Il faut que saches � peut pres quelles parties de ton programme sont les plus longues et lesquelles sont les plus courtes.Code:
1
2ProgressBar->Position += 2;
bonjour,
je profite un peu du sujet...
justement, comment savoir o� en est le calcul (ou la requ�te si on fait de l'acc�s bdd)? parce que admettons que la progress bar soit pleine et que le fameux calcul ne soit pas termin�... n'y a t-il pas un moyen de "pr�dire" th�oriquement le temps d'ex�cution?
Dans le cas d'une requete seule moi je triche un peu :oops:
En fait, j'effectue d'abord la requete en comptant le nombre d'enregistrements concern�s par la requete.
Ensuite je relance ma requete avec les donn�es que je veux r�cup�rerCode:
1
2
3
4
5
6
7
8
9 int compte = 0; Qry->SQL->Clear(); Qry->SQL->Add((String)"SELECT count(*) AS COMPTE FROM blablabla"); Qry->Open(); compte = Qry->FieldByName("COMPTE")->AsInteger; ProgressBar->Min = 0; ProgressBar->Max = compte; ProgressBar->Position = 0;
Code:
1
2
3
4
5
6
7
8
9
10
11
12 Qry->SQL->Clear(); Qry->SQL->Add((String)"SELECT toto, tata FROM blablabla"); Qry->Open(); Qry->First(); while( !(Qry->Eof) ) { traitement des données récupérées ProgressBar->Position += 1; Qry->Next(); } Qry->SQL->Clear();
admettons que la requ�te soit costaude avec des calculs pouss�s (�cart types, cumuls...), �a va ramer pendant des secondes avant l'affichage de la progress bar!
j'ai affich� une simple form avec un label "r�cup�ration en cours..." avant d'activer ma requ�te et la ferme apr�s l'activation... rien de mieux pour le moment...
Ben moi je n'effectue aucun calcul dans la requete qui compte !
Je fait juste les jointures et la r�cup�ration des donn�es dont j'ai besoin pour mes traitements!
Par contre si tu as besoin de tes calculs pour la r�cup�ration des donn�es, l� je ne vois pas comment faire :?
je te remercie et t�cherai de penser � ton id�e pour les requ�tes simples
Merci parfait...une derniere question...une incrementation d'1 c 1 seconde?Citation:
Envoy� par Superstivix
Je vais essayer de faire une progressBar a la K200, parce que c impossible de prevoir pour moi le temps que va prendre le calcul.....
si je reprends l'exemple de Superstivix:
si je fais un dessin concret, j'aurai une progressbar contenant 100 batons...Code:
1
2 ProgressBar->Min = 0; ProgressBar->Max = 100;
suivi de l'initialisation � 0 (donc ta progress bar est vide)...
et de l'alimentation que tu d�finis toi-m�me...Code:ProgressBar->Position = 0;
� chaque fois que tu alimenteras ta progressbar, tu auras 2 batons en plus.Code:ProgressBar->Position += 2;
donc une incr�mentation de 1 �quivaut � 1 baton
non, c'est du dessin... mais si tu mets l'alimentation (de 1) de la progressbar dans un timer de 1000ms, la progressbar se remplira d'1 baton toute les secondes...Citation:
une derniere question...une incrementation d'1 c 1 seconde?
tout d�pend de QUAND TU VEUX ALIMENTER LA PROGRESSBAR
Bonjour � tous,
bon ben je crois que je peux pas mieux expliquer que �a !
C'est exactement comme il a dit le doudou :wink:
L'incr�mentation est ind�pendante du temps mais on peut se d�brouiller pour qu'elle le devienne :lol:
A plus
vivi parfait merci a tous