Bonjour, ou pourrais je trouver un exemple de ProgressBar? merci
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
Modérateur Taverne et C++Builder
Règles du Club - Règles de la Taverne
FAQ BCB - sources
Et je mords
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
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 Max
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
1
2ProgressBar->Position += 2;
Modérateur Taverne et C++Builder
Règles du Club - Règles de la Taverne
FAQ BCB - sources
Et je mords
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?
N'oubliez pas le tag .
Dans le cas d'une requete seule moi je triche un peu
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érer
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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();
Modérateur Taverne et C++Builder
Règles du Club - Règles de la Taverne
FAQ BCB - sources
Et je mords
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...
N'oubliez pas le tag .
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
Modérateur Taverne et C++Builder
Règles du Club - Règles de la Taverne
FAQ BCB - sources
Et je mords
je te remercie et tâcherai de penser à ton idée pour les requêtes simples
N'oubliez pas le tag .
Merci parfait...une derniere question...une incrementation d'1 c 1 seconde?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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part ProgressBar->Position = 0;
à chaque fois que tu alimenteras ta progressbar, tu auras 2 batons en plus.
Code : Sélectionner tout - Visualiser dans une fenêtre à part 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...une derniere question...une incrementation d'1 c 1 seconde?
tout dépend de QUAND TU VEUX ALIMENTER LA PROGRESSBAR
N'oubliez pas le tag .
Bonjour à tous,
bon ben je crois que je peux pas mieux expliquer que ça !
C'est exactement comme il a dit le doudou
L'incrémentation est indépendante du temps mais on peut se débrouiller pour qu'elle le devienne
A plus
Modérateur Taverne et C++Builder
Règles du Club - Règles de la Taverne
FAQ BCB - sources
Et je mords
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager