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

Composants VCL Delphi Discussion :

Copier fichier avec progressbar


Sujet :

Composants VCL Delphi

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 21
    Points : 20
    Points
    20
    Par défaut Copier fichier avec progressbar
    Bonjour,
    Je souhaite copier un fichier avec progressbar. J'ai trouvé le code suivant:
    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
    procedure TForm1.CopyFileWithProgressBar1(Source, Destination: string);
    var
      FromF, ToF: file of byte;
      Buffer: array[0..4096] of char;
      NumRead: integer;
      FileLength: longint;
    begin
      AssignFile(FromF, Source);
      reset(FromF);
      AssignFile(ToF, Destination);
      rewrite(ToF);
      FileLength := FileSize(FromF);
      with Progressbar1 do
      begin
        Min := 0;
        Max := FileLength;
        while FileLength > 0 do
        begin
          BlockRead(FromF, Buffer[0], SizeOf(Buffer), NumRead);
          FileLength := FileLength - NumRead;
          BlockWrite(ToF, Buffer[0], NumRead);
          Position := Position + NumRead;
        end;
        CloseFile(FromF);
        CloseFile(ToF);
      end;
    end;
     
     
    procedure TForm1.Button1Click(Sender: TObject);
    begin
      CopyFileWithProgressBar1('c:\Windows\Welcome.exe', 'c:\temp\Welcome.exe');
    end;
    Le problème c'est que j'ai message d'erreur : "
    Undeclared identifier : CopyFileWithProgressBar1
    Autrement dit, comment créer cette procédure? Si je fais un copier-coller simple du code, ca ne marche pas.

    Merci pour toute aide.

  2. #2
    Rédacteur
    Avatar de Pedro
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    5 411
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 5 411
    Points : 8 078
    Points
    8 078
    Par défaut
    Salut
    Il faut tout simplement que tu déclares cette procedure dans les membres de TForm1...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
      TForm1=class(TForm)
      ...
      private
      public
        procedure CopyFileWithProgressBar1(Source, Destination: string);
      end;
    Et c'est bon
    Note: tu peux aussi la déclarer dans private mais alors les autres fiches ne pourront pas y accéder

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 21
    Points : 20
    Points
    20
    Par défaut
    SUPER!!
    Maintenant, je voudrais pouvoir choisir le fichier à copier par un "opendialogue1", et le copier vers une destination choisie aussi par le dialogue??

  4. #4
    Rédacteur
    Avatar de Pedro
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    5 411
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 5 411
    Points : 8 078
    Points
    8 078
    Par défaut
    Euh un petit coup de sur TOpenDialog ne ferait pas de mal ...
    Tu dois avoir 2 boites de dialogue:
    - Une pour sélectionner le fichier (Ex: OpenDialog1)
    - Une pour sélectionner la destination (Ex: SaveDialog1)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
      if (OpenDialog1.Execute) and (SaveDialog1.Execute) then
        CopyFileWithProgressBar(OpenDialog1.FileName,SaveDialog1.FileName);
    Voila bon dev'

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 21
    Points : 20
    Points
    20
    Par défaut
    MERCIII BEAUCOUP !!!
    En fait, comment faire pour séléctionner et copier plusieurs fichiers à la fois ?

  6. #6
    Expert confirmé
    Avatar de Sub0
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2002
    Messages
    3 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 573
    Points : 4 219
    Points
    4 219
    Par défaut
    Citation Envoyé par marcus333
    comment faire pour séléctionner et copier plusieurs fichiers à la fois ?
    Jette donc un oeil à ShFileOperation :

    http://delphi.developpez.com/sources...no40source0019

    Dans la page code source de Delphi, tu trouveras également mon code de copie de fichier qui ressemble au tien d'ailleurs...

    http://delphi.developpez.com/sources...rche#SUBMyCopy

    à+


    Lien tout en bas à gauche de cette fenêtre

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 21
    Points : 20
    Points
    20
    Par défaut
    Merci Sub0, très bon travail!

  8. #8
    Expert confirmé
    Avatar de Sub0
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2002
    Messages
    3 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 573
    Points : 4 219
    Points
    4 219
    Par défaut
    Merci pour le compliment!
    Malgré tout, je ne suis pas entièrement satisfait de mon travail; Il ne fonctionne pas exactement comme je le voudrais... Je le referai un de ces 4 lorsque j'aurai un peu de temps libre... Cela dit, rien ne t'empêche de t'en inspirer pour réaliser ton projet. Si tu as des questions, n'hésite pas, à+

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

Discussions similaires

  1. copier des fichiers avec progressbar
    Par coolirc dans le forum Débuter
    Réponses: 8
    Dernier message: 28/04/2014, 20h05
  2. Réponses: 2
    Dernier message: 14/04/2010, 10h49
  3. copier fichier avec python
    Par fboss dans le forum Général Python
    Réponses: 2
    Dernier message: 19/05/2009, 14h01
  4. Copier fichier avec sa hierarchie de dossiers
    Par lamoua76 dans le forum Administration système
    Réponses: 3
    Dernier message: 20/11/2008, 14h12
  5. Copie de fichiers avec progressbar
    Par serialmatrix dans le forum C++
    Réponses: 3
    Dernier message: 11/02/2006, 18h30

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