IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++Builder Discussion :

ProgressBar


Sujet :

C++Builder

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    115
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 115
    Points : 48
    Points
    48
    Par défaut ProgressBar
    Bonjour, ou pourrais je trouver un exemple de ProgressBar? merci

  2. #2
    Membre averti
    Avatar de Superstivix
    Inscrit en
    Décembre 2003
    Messages
    250
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 250
    Points : 405
    Points
    405
    Par défaut
    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

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    115
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 115
    Points : 48
    Points
    48
    Par défaut
    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......

  4. #4
    Membre averti
    Avatar de Superstivix
    Inscrit en
    Décembre 2003
    Messages
    250
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 250
    Points : 405
    Points
    405
    Par défaut
    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

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
      ProgressBar->Min = 0;
      ProgressBar->Max = 100;
    Tu peux aussi mettre des variables entières;
    Ensuite tu initialise à la valeur Min

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
        ProgressBar->Position = 0;
    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
    2
     
        ProgressBar->Position += 2;
    Il faut que saches à peut pres quelles parties de ton programme sont les plus longues et lesquelles sont les plus courtes.
    Modérateur Taverne et C++Builder
    Règles du Club - Règles de la Taverne
    FAQ BCB - sources
    Et je mords

  5. #5
    Membre habitué
    Homme Profil pro
    Analyste développeur VB6, SQL, VB.NET, C#
    Inscrit en
    Avril 2003
    Messages
    111
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Analyste développeur VB6, SQL, VB.NET, C#
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2003
    Messages : 111
    Points : 141
    Points
    141
    Par défaut
    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 .

  6. #6
    Membre averti
    Avatar de Superstivix
    Inscrit en
    Décembre 2003
    Messages
    250
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 250
    Points : 405
    Points
    405
    Par défaut
    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.
    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;
    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
    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

  7. #7
    Membre habitué
    Homme Profil pro
    Analyste développeur VB6, SQL, VB.NET, C#
    Inscrit en
    Avril 2003
    Messages
    111
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Analyste développeur VB6, SQL, VB.NET, C#
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2003
    Messages : 111
    Points : 141
    Points
    141
    Par défaut
    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 .

  8. #8
    Membre averti
    Avatar de Superstivix
    Inscrit en
    Décembre 2003
    Messages
    250
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 250
    Points : 405
    Points
    405
    Par défaut
    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

  9. #9
    Membre habitué
    Homme Profil pro
    Analyste développeur VB6, SQL, VB.NET, C#
    Inscrit en
    Avril 2003
    Messages
    111
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Analyste développeur VB6, SQL, VB.NET, C#
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2003
    Messages : 111
    Points : 141
    Points
    141
    Par défaut
    je te remercie et tâcherai de penser à ton idée pour les requêtes simples
    N'oubliez pas le tag .

  10. #10
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    115
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 115
    Points : 48
    Points
    48
    Par défaut
    Citation Envoyé par Superstivix
    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

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
      ProgressBar->Min = 0;
      ProgressBar->Max = 100;
    Tu peux aussi mettre des variables entières;
    Ensuite tu initialise à la valeur Min

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
        ProgressBar->Position = 0;
    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
    2
     
        ProgressBar->Position += 2;
    Il faut que saches à peut pres quelles parties de ton programme sont les plus longues et lesquelles sont les plus courtes.
    Merci parfait...une derniere question...une incrementation d'1 c 1 seconde?

  11. #11
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    115
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 115
    Points : 48
    Points
    48
    Par défaut
    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.....

  12. #12
    Membre habitué
    Homme Profil pro
    Analyste développeur VB6, SQL, VB.NET, C#
    Inscrit en
    Avril 2003
    Messages
    111
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Analyste développeur VB6, SQL, VB.NET, C#
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2003
    Messages : 111
    Points : 141
    Points
    141
    Par défaut
    si je reprends l'exemple de Superstivix:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ProgressBar->Min = 0; 
    ProgressBar->Max = 100;
    si je fais un dessin concret, j'aurai une progressbar contenant 100 batons...

    suivi de l'initialisation à 0 (donc ta progress bar est vide)...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ProgressBar->Position = 0;
    et de l'alimentation que tu définis toi-même...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ProgressBar->Position += 2;
    à chaque fois que tu alimenteras ta progressbar, tu auras 2 batons en plus.

    donc une incrémentation de 1 équivaut à 1 baton

    une derniere question...une incrementation d'1 c 1 seconde?
    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...
    tout dépend de QUAND TU VEUX ALIMENTER LA PROGRESSBAR
    N'oubliez pas le tag .

  13. #13
    Membre averti
    Avatar de Superstivix
    Inscrit en
    Décembre 2003
    Messages
    250
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 250
    Points : 405
    Points
    405
    Par défaut
    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

  14. #14
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    115
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 115
    Points : 48
    Points
    48
    Par défaut
    vivi parfait merci a tous

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [MFC] afficher une ProgressBar dans une barre d'etat
    Par guillaume21 dans le forum MFC
    Réponses: 5
    Dernier message: 30/03/2007, 11h16
  2. ProgressBar style XP
    Par Rodrigue dans le forum C++Builder
    Réponses: 3
    Dernier message: 08/11/2003, 09h36
  3. comment programmer une progressbar
    Par Choucas dans le forum Paradox
    Réponses: 3
    Dernier message: 13/11/2002, 11h07
  4. ProgressBar avec plusieurs procédures
    Par elifqaoui dans le forum VB 6 et antérieur
    Réponses: 8
    Dernier message: 08/09/2002, 18h03
  5. Couleur de ProgressBar
    Par benj63 dans le forum C++Builder
    Réponses: 7
    Dernier message: 04/07/2002, 17h33

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo