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

Langage Delphi Discussion :

Réalisation d'un téléchargement multiple


Sujet :

Langage Delphi

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Août 2004
    Messages
    149
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2004
    Messages : 149
    Points : 69
    Points
    69
    Par défaut Réalisation d'un téléchargement multiple
    Hello,

    Je réalise en ce moment un téléchargement multiple. J'ai une Listbox dans une Form et une autre Form mais générique qui est modifier à chaque données parcourues de la listBox.

    Le problème est le suivant :

    comment ouvrir ma Form générique pour chaque ligne de ma ListBox tout en stoppant ma boucle ?

    Merci

  2. #2
    DMO
    DMO est déconnecté
    Membre averti
    Avatar de DMO
    Profil pro
    Inscrit en
    Février 2004
    Messages
    290
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 290
    Points : 343
    Points
    343
    Par défaut
    Citation Envoyé par Vodkha
    ma boucle
    Erreur: Identificateur non déclaré : 'ma boucle'

    Est-tu en environnement multi-thread ?

    Citation Envoyé par Vodkha
    une autre Form mais générique
    Sois plus précis stp. Que fait cette form ? y en a-t-il une instance pour chaque item du listbox ?

    Il faudrait que tu nous donnes plus de détails je crois, de sorte que nous puissions t'aider.
    « La simplicité est la sophistication suprême » (Léonard de Vinci)

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Août 2004
    Messages
    149
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2004
    Messages : 149
    Points : 69
    Points
    69
    Par défaut
    Oui j'ai un thread mais je ne sais pas comment le faire fonctionner correctement

    J'ai un for qui parcourt ma listbox et pour chaque item je dois afficher des infos sur une autre form. Lorsque je presse sur le bouton suivant de cette form, on passe à l'item suivant.

    Code bouton qui lance le parcours
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
          MyThread := TMyThread.Create(False);
     
          Repeat
          // boucle vide pour attendre la fin du thread
            Application.ProcessMessages;
          until MyThread.ThreadTerminated;
    Et pour ce qui est du Thread
    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
    28
     
    constructor TMyThread.Create(Suspended: Boolean);
    begin
      FreeOnTerminate := True;
      inherited Create(Suspended);
      FImport := TFrmImport.Create(nil);
      FImport.Show;
      OnTerminate := OnTerminateProcedure;
      ThreadTerminated := False;
    end;
     
    procedure TMyThread.Execute;
    begin
     
      if Assigned(FImport) then
      begin
        // ici je ne sais pas quoi mettre étant donnée qu'il ne se passe rien
       // je dois attendre jusqu'à ce que l'utilisateur appuie suivant
      end;
     
    end;
     
    procedure TMyThread.OnTerminateProcedure(Sender: TObject);
    begin
      if Assigned(FImport) then
        FImport.Release;
      ThreadTerminated:=True;
    end;

  4. #4
    DMO
    DMO est déconnecté
    Membre averti
    Avatar de DMO
    Profil pro
    Inscrit en
    Février 2004
    Messages
    290
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 290
    Points : 343
    Points
    343
    Par défaut
    Tu souhaites bloquer l'execution de l'application dès que le thread est lancé.
    À l'intérieur même de ton Thread, tu dis que tu dois attendre une action de l'utilisateur.
    Ton thread semble jouer pas mal avec l'IHM (TFrmImport), pour faire bien tu serais obligé de faire des synchronize, perdant ainsi l'eventuel bénéfice du thread.

    Pour toutes ces raisons, et en cherchant on doit même en trouver d'autres, je ne crois pas que le choix de faire ce travail là dans un thread soit une bonne idée.

    Bon soit. Maintenant, pour essayer de résoudre ton problème, j'essaye de comprendre :
    Tu es en train de faire un "téléchargement multiple", je suppose que chaque élément de ta liste est un fichier en cours de téléchargement. Je suppose également que dans la form d'import, dont je ne comprends pas le nom, tu affiches des informations sur le téléchargement en cours.

    N'hésites pas à corriger si mes suppositions sont à côté de la plaque.

    Pourquoi simplement ne pas faire de thread et lors de la modification de l'élément sélectionné mettre à jour les informations de la form, mais tout ca dans le thread principal, qui lui est fait expres pour attendre une intervention de l'utilisateur ?
    Qu'aurais-tu voulu que fasse l'hypothétique thread (je ne vois pas le fameux "for" dont tu parles, peut-être est-ce là que tu veux faire un thread) ?
    « La simplicité est la sophistication suprême » (Léonard de Vinci)

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Août 2004
    Messages
    149
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2004
    Messages : 149
    Points : 69
    Points
    69
    Par défaut
    oui tu as tout compris.

    Alors pour l'instant j'ai laissé tomber le Thread et j'utilise une boucle repeat until Avec application.processmessages qui me bloque mon application.

    Ca marche très bien je crois que je vais rester avec cette option qu'en penses tu ?

  6. #6
    DMO
    DMO est déconnecté
    Membre averti
    Avatar de DMO
    Profil pro
    Inscrit en
    Février 2004
    Messages
    290
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 290
    Points : 343
    Points
    343
    Par défaut
    Je pense que laisser tomber le thread est en effet la bonne option.

    Mais du coup, normalement, cela induit que tu n'as plus besoin non plus de bloquer le thread principal dans le repeat until avec le ProcessMessages. Donc tu peux aussi enlever ça (il me semble).

    Bon dev'

    a+
    « La simplicité est la sophistication suprême » (Léonard de Vinci)

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

Discussions similaires

  1. modifier ctorrent pou téléchargement multiple
    Par marouane12 dans le forum Linux
    Réponses: 1
    Dernier message: 03/04/2014, 18h31
  2. Réponses: 2
    Dernier message: 07/05/2012, 16h37
  3. Formulaire de téléchargement multiple d'images
    Par nal dans le forum Langage
    Réponses: 8
    Dernier message: 28/04/2012, 22h03
  4. Réaliser Connexion multiple
    Par fred033 dans le forum VB 6 et antérieur
    Réponses: 14
    Dernier message: 02/07/2008, 12h25

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