CopyDir + ProgressBar

Résolu
magalio Messages postés 1 Date d'inscription mercredi 10 décembre 2003 Statut Membre Dernière intervention 24 novembre 2008 - 24 nov. 2008 à 10:59
cs_cantador Messages postés 4720 Date d'inscription dimanche 26 février 2006 Statut Modérateur Dernière intervention 31 juillet 2021 - 24 nov. 2008 à 12:23
Bonjour a tout le monde

J'ai un petit problème sur une procedure

  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

Magalio

1 réponse

cs_cantador Messages postés 4720 Date d'inscription dimanche 26 février 2006 Statut Modérateur Dernière intervention 31 juillet 2021 13
24 nov. 2008 à 12:23
bonjour,
procedure Copier( source, dest : string;Progress:TProgressBar);

form1.progress.position:= form1.progress.position;

une possiblité..

PROCEDURE TForm1.Button1Click(Sender: TObject);
BEGIN
  IF Tbutton(sender) = Button1 THEN
   (Source,destination,, progressbar1);
  IF Tbutton(sender) = Button2 THEN
    (Source,destination,, progressbar2);
etc..
END;

cantador
3
Rejoignez-nous