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

Pascal Discussion :

Calcul avancement progressBar


Sujet :

Pascal

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Octobre 2009
    Messages : 5
    Points : 4
    Points
    4
    Par défaut Calcul avancement progressBar
    Bonjour,

    J'ai besoin de vous car je ne sais pas comment calculer l'avancement d'une "progress bar".
    J'ai commencé un programme de recherche de fichiers sous windows avec FindFirst/FindNext et j'aimerais que la progress bar affiche l'avancement par rapport à la fin de la recherche...

    Cependant, je n'ai pas réussi à trouver le calcul à faire alors qu'on ne connait pas le nombre de fichiers trouvés. Et je n'ai pas envie de faire deux recherches...

    Merci d'avance

  2. #2
    Membre éprouvé
    Avatar de Dr.Who
    Inscrit en
    Septembre 2009
    Messages
    980
    Détails du profil
    Informations personnelles :
    Âge : 45

    Informations forums :
    Inscription : Septembre 2009
    Messages : 980
    Points : 1 294
    Points
    1 294
    Par défaut
    le mieux, quand on ne connais pas le "max" d'une progression, c'est d'afficher une petite animation.

    par exemple la progressBar de Delphi, possède une petite animation qui s'appelle "marquee" et qui fait défiler un bout de barre plus ou moins vite selon réglage.

    mais bon, généralement, une simple recherche de fichiers avec FindFirst, FindNext (non récursive) est tellement rapide qu'on as pas le temps de voir la dites animation.
    [ Sources et programmes de Dr.Who | FAQ Delphi | FAQ Pascal | Règlement | Contactez l'équipe ]
    Ma messagerie n'est pas la succursale du forum... merci!

  3. #3
    Expert confirmé

    Inscrit en
    Août 2006
    Messages
    3 942
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 3 942
    Points : 5 654
    Points
    5 654
    Par défaut
    Voe,
    Citation Envoyé par Dr.Who Voir le message
    mais bon, généralement, une simple recherche de fichiers avec FindFirst, FindNext (non récursive) est tellement rapide qu'on as pas le temps de voir la dites animation.
    Quand il n'y a pas trop de fichiers.

    Essaye avec 20000 à 30000 ... (cela m'est arrivé avec un client, qui gérait ce nombre de fichiers 1 ou 2 fois par semaine).
    Si les cons volaient, il ferait nuit à midi.

  4. #4
    Membre éprouvé
    Avatar de Dr.Who
    Inscrit en
    Septembre 2009
    Messages
    980
    Détails du profil
    Informations personnelles :
    Âge : 45

    Informations forums :
    Inscription : Septembre 2009
    Messages : 980
    Points : 1 294
    Points
    1 294
    Par défaut
    maintenant avec le SATA, SATA2, RAID et UDMA5 30K fichiers ça roule en moins d'une ou deux secondes.

    par contre en PIO ou en UDMA3 ou DMA houlalala.... ça peut mettre de 1 à 10 minutes.

    mais bon, rien n'enleve que l'animation reste la meilleure solution, plutot que de partir dans des trucs machins alambiqué.
    [ Sources et programmes de Dr.Who | FAQ Delphi | FAQ Pascal | Règlement | Contactez l'équipe ]
    Ma messagerie n'est pas la succursale du forum... merci!

  5. #5
    Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Octobre 2009
    Messages : 5
    Points : 4
    Points
    4
    Par défaut
    Merci de vos réponses !
    J'ai aussi pensé à "l'animation", mais j'aurais trouvé mieux d'afficher la progression...bref je me suis cassé la tête avec ça, je vais faire comme tu m'as dis, Dr.Who.

    Mon programme permet de faire une recherche récursive, donc la barre aura quand même son intérêt.

    Et justement j'ai encore une question à ce sujet, lorsque je recherche bcp de fichiers (par ex. sur le disque complet), mon affichage "clignote" (le stringGrid), le résultat n'arrive pas fluidement, y'aurait-il une manière d'éviter ceci ?

  6. #6
    Expert confirmé

    Inscrit en
    Août 2006
    Messages
    3 942
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 3 942
    Points : 5 654
    Points
    5 654
    Par défaut
    Hei,
    Citation Envoyé par Dr.Who Voir le message
    maintenant avec le SATA, SATA2, RAID et UDMA5 30K fichiers ça roule en moins d'une ou deux secondes.
    Mais quand on prend la peine de chercher tant de fichiers, ce n'est pas pour le seul plaisir, il faut traiter leur contenu, et ça peut prendre du temps.
    Si les cons volaient, il ferait nuit à midi.

  7. #7
    Membre chevronné

    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2009
    Messages
    935
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Aveyron (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2009
    Messages : 935
    Points : 1 765
    Points
    1 765
    Par défaut
    Citation Envoyé par Chris10 Voir le message
    Et justement j'ai encore une question à ce sujet, lorsque je recherche bcp de fichiers (par ex. sur le disque complet), mon affichage "clignote" (le stringGrid), le résultat n'arrive pas fluidement, y'aurait-il une manière d'éviter ceci ?
    Ca doit etre du au fait que tu affiches au fur et a mesure les noms dans ta liste. Ajoute les plutot dans une variable, que tu affiches soit toutes les secondes, soit une fois le calcul terminé ...

    Bonne chance !

  8. #8
    Membre éprouvé
    Avatar de Dr.Who
    Inscrit en
    Septembre 2009
    Messages
    980
    Détails du profil
    Informations personnelles :
    Âge : 45

    Informations forums :
    Inscription : Septembre 2009
    Messages : 980
    Points : 1 294
    Points
    1 294
    Par défaut
    tu utilise une TStringGrid ?! je suis curieux de voir pourquoi et comment.

    regarde mon programme DEPOC comment on peut utiliser une simple ListBox d'une façon beaucoup plus poussée :
    http://deefaze.developpez.com/#page_outils
    [ Sources et programmes de Dr.Who | FAQ Delphi | FAQ Pascal | Règlement | Contactez l'équipe ]
    Ma messagerie n'est pas la succursale du forum... merci!

  9. #9
    Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Octobre 2009
    Messages : 5
    Points : 4
    Points
    4
    Par défaut
    Oui, j'utilise un stringgrid car au départ je n'ai pas trouvé autre chose, mais la listview aurait été peut-être plus adaptée. Après essais, j'ai trouvé qu'elle était plus compliquée à utiliser.
    Par contre, je n'ai pas trouvé de propriété "marquee", Dr.Who
    Merci pour l'exemple!

  10. #10
    Membre éprouvé
    Avatar de Dr.Who
    Inscrit en
    Septembre 2009
    Messages
    980
    Détails du profil
    Informations personnelles :
    Âge : 45

    Informations forums :
    Inscription : Septembre 2009
    Messages : 980
    Points : 1 294
    Points
    1 294
    Par défaut
    dans les vieilles VCL la propriété marquee n'existe pas, sous lazarus, je ne sais pas.
    il me semble que c'est specifique à windows.

    cherche sur google : delphi progressbar marquee

    tu trouvera quelques sources sur le sujet.
    [ Sources et programmes de Dr.Who | FAQ Delphi | FAQ Pascal | Règlement | Contactez l'équipe ]
    Ma messagerie n'est pas la succursale du forum... merci!

Discussions similaires

  1. progressbar n'avance pas
    Par purple21 dans le forum Flash
    Réponses: 4
    Dernier message: 16/06/2007, 11h00
  2. logiciel de calculs mathématiques avancés
    Par jlassiramzy dans le forum Autres Logiciels
    Réponses: 3
    Dernier message: 21/03/2007, 20h26
  3. faire avancer une progressBar
    Par kifouillou dans le forum SWT/JFace
    Réponses: 4
    Dernier message: 23/02/2007, 18h41
  4. [PHP-JS] calculs mathématiques avancés en php
    Par jejerome dans le forum Langage
    Réponses: 8
    Dernier message: 12/07/2006, 13h05
  5. Réponses: 5
    Dernier message: 14/12/2005, 09h28

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