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 durant le téléchargement


Sujet :

C++Builder

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    74
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 74
    Par défaut Progressbar durant le téléchargement
    yop yop,

    bon pour le fun.
    Comment je peux mettre ma Progressbar pendant le téléchargement de mon fichier.
    Je me suis crée un objet Thread mais j'ai du mal à voir son fonctionnement.
    J'ai regardé un peu partout sur le forum mais j'ai pas trouvé...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    void __fastcall TForm1::Button1Click(TObject *Sender)
    {
            MonThread = new TMonThread(false);
            MonThread->OnTerminate = FinDeMonThread;
            EnableWindow(Handle, false);
    }
     
    void __fastcall  TForm1::FinDeMonThread(TObject *Sender)
    {
            EnableWindow(Handle, true);
            Label1->Caption = "Thread terminé";
            delete MonThread;
            MonThread = NULL;
    }
     
    MonThread::Execute()
    {
      ....
      Download();
      ....
    }
     
    Download()
    {
      idHTTP->Get(....);
      .....
    }
    merci

  2. #2
    Expert confirmé

    Avatar de pottiez
    Homme Profil pro
    Développeur C++
    Inscrit en
    Novembre 2005
    Messages
    7 152
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur C++
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2005
    Messages : 7 152
    Par défaut
    Si tu veut que ton ProgressBar affiche les pourcentages de fichier téléchargé, il faut que tu connaisse la taille du fichier télécharger et que tu sache quel est la taille déjà telechargé de ton fichier, sini tu ne pourra pas faire avancer ta ProgressBar en fnction du telechargement.

  3. #3
    Rédacteur
    Avatar de Greybird
    Inscrit en
    Juin 2002
    Messages
    673
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 673
    Par défaut
    Bonjour,

    Si tu utilise le composant TIdHTTP, pas besoin de Thread pour gérer cela, il te faut juste implémenter les gestionnaires d'événements OnWorkBegin, OnWork, et OnWorkComplete du composant TIdHTTP.
    Ces gestionnaires d'événements te forunissent la taille totale du fichier, et l'état d'avancement de manière régulière. Tu n'as plus qu'à positionner correctement ton TProgressBar.

    Je donne les noms de mémoire. Il te faudra peut-être adapter un poil

    Cordialement,

    Arnaud

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    74
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 74
    Par défaut
    Citation Envoyé par Greybird
    Si tu utilise le composant TIdHTTP, pas besoin de Thread pour gérer cela, il te faut juste implémenter les gestionnaires d'événements OnWorkBegin, OnWork, et OnWorkComplete du composant TIdHTTP.
    Pas mal du tout ca !!!
    Quelqu'un a des infos ? des bout de mise en pratique....
    merci

    Donc d'apres ce que j'ai vu OnWorkBegin faut lui mettre la taille du fichier, OnWork c'est le progression de la barre, OnWorkComplete je fait ce que je veut une fois fini.

    Mais j'suis pas plus avancé

  5. #5
    Rédacteur
    Avatar de Greybird
    Inscrit en
    Juin 2002
    Messages
    673
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 673
    Par défaut
    C'est pourtant simple :
    Dans le OnWorkBegin, qui sera appelé au début du téléchargement, tu règle le Max de ta TProgressBar à la taille du fichier à télécharger, et tu mets la position à 0.
    Dans le OnWork, tu mets la position à la valeur qui t'es passée.
    Dans le OnWorkComplete, tu mets la position de ta TProgressBar à son Max (en effet, sinon, tu peux ne pas atteindre la fin de la barre, ce qui visuellement n'est pas super sympa).

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    74
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 74
    Par défaut
    Ouais c'est simple ca marche
    Mais je vois pas comment initialiser mon Max pour la progressBar (taille fichier) ?

  7. #7
    Membre expérimenté Avatar de damienlann
    Profil pro
    Étudiant
    Inscrit en
    Mai 2005
    Messages
    293
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2005
    Messages : 293
    Par défaut
    tu laisse ton max à 100 et tu fais un poucentage de fichier telechargé...

  8. #8
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    74
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 74
    Par défaut
    Citation Envoyé par damienlann
    tu laisse ton max à 100 et tu fais un poucentage de fichier telechargé...
    nan nan j'ai trouvé.
    c'est dans idHTTPWorkBegin il faut mettre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ProgressBar->Max = AWorkCountMax;
    pour votre aide à tous et surtout à Greybird

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

Discussions similaires

  1. [Débutant] Progressbar sur un téléchargement
    Par fisher01 dans le forum VB.NET
    Réponses: 2
    Dernier message: 23/12/2011, 17h10
  2. [AJAX] Progressbar durant chargement page php
    Par ikeabp dans le forum AJAX
    Réponses: 1
    Dernier message: 02/07/2010, 16h02
  3. ProgressBar de téléchargement
    Par Serialk dans le forum Qt
    Réponses: 3
    Dernier message: 15/01/2010, 10h31
  4. [C#] Utilisation d'une ProgressBar pour un téléchargement
    Par snoof dans le forum Windows Forms
    Réponses: 10
    Dernier message: 04/10/2004, 19h37

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