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

 Delphi Discussion :

CopyDir + ProgressBar


Sujet :

Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 5
    Par défaut CopyDir + ProgressBar
    Bonjour a tout le monde

    J'ai un petit problème sur une procedure

    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
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    procedure Copier( source, dest : string);
    begin
         i :=0;
         r := FindFirst(source+'*.*', FaAnyFile, DirInfo);
         while r=0 do
         begin
             if (DirInfo.Attr and faArchive > 0) then
             inc(i);
             r := FindNext(DirInfo);
           end;
         FindClose(DirInfo);
     
            r := FindFirst(source+'*.*', FaAnyFile, DirInfo);
         while r=0 do
         begin
            if (DirInfo.Attr and faArchive > 0) then
              begin
     
                   Application.ProcessMessages;
                   source2 := source+DirInfo.Name;
                   dest2 := dest+DirInfo.Name;
                  form1.label9.caption:=source2;
                   CopyFile( pchar(source2) , pchar(dest2), false);
                       end;
                    r := FindNext(DirInfo);
           form1.progressbar1.position:=form1.progressbar1.position+i+1;
               end;
         FindClose(DirInfo);
                r := FindFirst(source+'*.*', FaAnyFile, DirInfo);
              while r=0 do
         begin
              if (DirInfo.Attr and FaDirectory <> 0) then
                 if ((DirInfo.Name <> '.') and (DirInfo.Name <> '..')) then
                 begin
                    CreateDir(dest+DirInfo.Name+'\');
                    Copier(source+DirInfo.Name+'\', dest+DirInfo.Name+'\');
                     end;
              r := FindNext(DirInfo);
              Application.ProcessMessages;
                 end;
               FindClose(DirInfo);
             form1.label9.caption:= source2;
            form1.progressbar1.position:= 0;
          end;
    lors de la copie d'un répertoire cela fonctionne a merveille mais par contre
    sur ma form j'ai 3 bouton avec 3 chemins différents et autant de progressbars
    dois réécrire cette procedure en modifiant (progressbar1, par progressbar2) ou peut on modifier cette
    procedure pour obtenir par exemple copier('source','destination',progressbar(x)) ???

    je débute soyez indulgents: oops:

  2. #2
    Membre émérite
    Avatar de ouiouioui
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Août 2006
    Messages
    993
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Août 2006
    Messages : 993
    Par défaut
    je comprend pas pourquoi ta 3 progressbar.
    en argument de copier ajoute la progressbar que tu veux modifier

    ex:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    procedure Copier( source, dest : string; barre : TProgressBar);
    begin
      barre.position := barre.position + 1;
    end;
     
    copier('', '', form1.progressbar1);

  3. #3
    Expert confirmé
    Avatar de Cl@udius
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2006
    Messages
    4 878
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 4 878
    Par défaut
    Salut

    Définis ta procédure ainsi:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    procedure Copier(Source, Dest: string; ProgressBar: TProgressBar);
    Et dans ton code remplace Form1.ProgressBar1 par ProgressBar.
    Quant à l'appel:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Copier(TaSource, TaDestination, Form1.ProgressBar1);
    @+ Claudius.

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 5
    Par défaut
    Merci, ça marche impec encore merci

+ 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, 12h16
  2. Problème avec CopyDir sous D5
    Par Houben Jacques dans le forum Langage
    Réponses: 3
    Dernier message: 26/05/2003, 23h02
  3. comment programmer une progressbar
    Par Choucas dans le forum Paradox
    Réponses: 3
    Dernier message: 13/11/2002, 12h07
  4. ProgressBar avec plusieurs procédures
    Par elifqaoui dans le forum VB 6 et antérieur
    Réponses: 8
    Dernier message: 08/09/2002, 19h03
  5. Couleur de ProgressBar
    Par benj63 dans le forum C++Builder
    Réponses: 7
    Dernier message: 04/07/2002, 18h33

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