Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Coloboración Paypal con ClubDelphi

 
 
Herramientas Buscar en Tema Desplegado
  #11  
Antiguo 27-09-2013
Avatar de nlsgarcia
[nlsgarcia] nlsgarcia is offline
Miembro Premium
 
Registrado: feb 2007
Ubicación: Caracas, Venezuela
Posts: 2.206
Poder: 23
nlsgarcia Tiene un aura espectacularnlsgarcia Tiene un aura espectacular
danielmj,

Cita:
Empezado por danielmj
...Lo que trato de conseguir es que el progreso de la barra avance segun se divida el tamaño del archivo entre la cantidad elegida...
Revisa este código:
Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
var
   OpenDialog : TOpenDialog;
   F1 : TFileStream;
   Buffer : String;
   CountRead : Integer;
   FileLen : Integer;

begin

   OpenDialog := TOpenDialog.Create(self);
   OpenDialog.InitialDir := 'C:\';
   OpenDialog.Options := [ofFileMustExist];
   OpenDialog.Filter := 'All Files|*.*';
   OpenDialog.FilterIndex := 1;

   ProgressBar1.Min := 1;
   ProgressBar1.Max := 100;
   ProgressBar1.Position := 0;

   if OpenDialog.Execute then
   begin

      try

         F1 := TFileStream.Create(OpenDialog.FileName, fmOpenRead or fmShareDenyWrite);

         FileLen:= MaxInt div 1024; // MaxInt = 2147483647 

         SetLength(Buffer, FileLen);

         while F1.Position < F1.Size do
         begin

            CountRead := F1.Read(Buffer[1], FileLen);

            ProgressBar1.Position := Trunc((F1.Position/F1.Size)*100);

            Application.ProcessMessages;

         end;

      finally

         F1.Free;

         OpenDialog.Free;

      end;

   end;

end;
El código anterior lee un archivo de cualquier tamaño en porciones (MaxInt div 1024) y muestra su progreso en un componente TProgressBar normalizado en el rango de 1 a 100.

Nota: La idea es mostrar el proceso de un archivo en función porcentual y no en divisiones de su tamaño original, lo cual se adapta a cualquier tamaño de archivo hasta un máximo de 2^63 - 1.

Espero sea útil

Nelson.

Última edición por nlsgarcia fecha: 27-09-2013 a las 18:08:23.
Responder Con Cita
 



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Numero Mayor igual , Menor igual... Problema ZiriusB OOP 12 27-06-2011 17:31:24
StringGrid con columnas igual al de un archivo Excel J@ckie Conexión con bases de datos 3 01-03-2011 15:07:20
En red, las BD Access ¿en con SQLs, ¿viaja el archivo completo igual que paradox...? Wonni Tablas planas 4 17-05-2007 18:21:01
FireBird.- Domino que sea entero mayor o igual a cero sakuragi Firebird e Interbase 1 08-09-2006 11:10:09
La impresión no se ve igual Newbie Impresión 2 06-11-2003 02:49:55


La franja horaria es GMT +2. Ahora son las 12:34:13.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi