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

Lazarus Pascal Discussion :

Petit problème avec les barres de progression


Sujet :

Lazarus Pascal

Mode arborescent

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    123
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 123
    Par défaut Petit problème avec les barres de progression
    Bonjour,
    merci pour toute votre aide si précieuse.
    //-------
    J'ai un problème avec les barres de progression.
    elles n'arrivent pas au bout, tout du moins visuellement et j'aimerais savoir pourquoi ?
    je trouve que cela ne fait pas très bien.
    (je n'avais pas de problème sous Delphi 7 avec le même code)
    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
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
     
    unit Unit1;
     
    {$mode objfpc}{$H+}
     
    interface
     
    uses
      Classes, SysUtils, Forms, Controls, Graphics, Dialogs, ComCtrls, StdCtrls;
     
    type
     
      { TForm1 }
     
      TForm1 = class(TForm)
        Button1: TButton;
        Button2: TButton;
        OpenDialog1: TOpenDialog;
        ProgressBar1: TProgressBar;
        SaveDialog1: TSaveDialog;
        procedure Button1Click(Sender: TObject);
        procedure Button2Click(Sender: TObject);
      private
     
      public
     
      end;
     
    Const
      NbOctet = 5000000;
     
    var
      Form1: TForm1;
     
    implementation
     
    {$R *.lfm}
     
    { TForm1 }
     
    procedure TForm1.Button1Click(Sender: TObject);
      var
        i                   : integer;                                              // compteur de boucles
        FSourceL            : TFileStream;                                          // Fichier à construire
        NomDuFichier        : String;                                               // nom du fichier à construire
      begin
        SaveDialog1.Filter:='*.Sav';
        if Savedialog1.Execute then begin                                           // ouvre la boîte de dialogue 'enregistrer sous...'
          ProgressBar1.Visible:=true;                                               // Affichage de la barre de progression pendant la sauvegarde
          NomDuFichier:='';
          Repeat
            NomDuFichier:=SaveDialog1.FileName;                                     // récupère le nom du fichier
          until (NomDuFichier<>'');
          FSourceL:=TFileStream.Create(NomDuFichier, fmCreate or fmOpenWrite);      // ouvre le fichier d'entrée en Stream File
          try
            for i:=1 to NbOctet do begin                                            // pour toutes les impulsions du filtre actif
              ProgressBar1.Position:=round(i*100/NbOctet);                          // Position dans la barre de progression
              FSourceL.Write(i, SizeOf(i));
            end;
          finally
            if assigned (FSourceL) then FSourceL.Free;                              // destruction de l'objet TfileStream
            ProgressBar1.Visible:=false;                                            // Fin de l'affichage de la barre de progression
            Button2.Enabled:=true;                                                  // active le bouton 'Restauration'
          end;
        end;
      end;
     
    procedure TForm1.Button2Click(Sender: TObject);
      var
        i                   : integer;                                              // compteur de boucles
        FSourceL            : TFileStream;                                          // Fichier à construire
        NomDuFichier        : String;                                               // nom du fichier à construire
        Entier              : integer;                                              // entier à restaurer
      begin
        Entier:=0;
        OpenDialog1.Filter:='*.Sav';
        if OpenDialog1.Execute then begin                                           // ouvre la boîte de dialogue 'enregistrer sous...'
          ProgressBar1.Visible:=true;                                               // Affichage de la barre de progression pendant la sauvegarde
          NomDuFichier:='';
          Repeat
            NomDuFichier:=OpenDialog1.FileName;                                     // récupère le nom du fichier
          until (NomDuFichier<>'');
          FSourceL:=TFileStream.Create(NomDuFichier, fmOpenRead);                   // ouvre le fichier d'entrée en Stream File
          try
            for i:=1 to NbOctet do begin                                            // pour toutes les impulsions du filtre actif
              ProgressBar1.Position:=round(i*100/NbOctet);                          // Position dans la barre de progression
              FSourceL.Read(Entier, SizeOf(Entier));
            end;
          finally
            if assigned (FSourceL) then FSourceL.Free;                              // destruction de l'objet TfileStream
            ProgressBar1.Visible:=false;                                            // Fin de l'affichage de la barre de progression
          end;
        end;
      end;
     
     
    end.
    le bout de code complet est joint au fichier.
    merci et bonne journée à tous
    Fichiers attachés Fichiers attachés

Discussions similaires

  1. Petit problème avec les pointeurs et variable
    Par mitherkiller dans le forum C
    Réponses: 5
    Dernier message: 09/03/2007, 23h05
  2. Problème avec une Barre de Progression
    Par hugo69 dans le forum Access
    Réponses: 1
    Dernier message: 15/12/2006, 16h37
  3. [VBA-Excel] Petit problème avec les formulaires
    Par ash_rmy dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 18/08/2006, 10h22
  4. Petit problème avec les accents circonflexes...
    Par Harvester dans le forum Autres Logiciels
    Réponses: 8
    Dernier message: 29/11/2005, 19h44

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