Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Otros temas > Trucos
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Los mejores trucos

 
 
Herramientas Buscar en Tema Desplegado
  #2  
Antiguo 12-08-2007
Avatar de cHackAll
[cHackAll] cHackAll is offline
Baneado?
 
Registrado: oct 2006
Posts: 2.159
Poder: 20
cHackAll Va por buen camino
El uso de un ProgressBar con el tamaño total de un archivo funciona siempre y cuando éste no sobrepase los 2147483647 bytes, (~2 Gb), dejo mis correcciónes aconsejando usar un hilo para no "perjudicar" al hilo principal:

Código Delphi [-]
...

implementation

{$R *.dfm}

var Cancel: LongBool;

function ProgressRoutine(TotalFileSize, TotalBytesTransferred, StreamSize, StreamBytesTransferred: Int64; dwStreamNumber, dwCallbackReason, hSourceFile, hDestinationFile: Cardinal; lpData: Pointer): Cardinal; stdcall;
var Value: Cardinal;
begin
 Application.ProcessMessages;
 case dwCallbackReason of
  CALLBACK_CHUNK_FINISHED: Form1.ProgressBar1.Position := (TotalBytesTransferred * 100) div TotalFileSize;
//  CALLBACK_STREAM_SWITCH: Form1.ProgressBar1.Max := 100;
 end;
 Result := PROGRESS_CONTINUE;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
 CopyFileEx('F:\DVD\Prince of Persia\Prince of Persia (The two thrones).mdf', 'e:\Dummy.mdf', @ProgressRoutine, nil, @Cancel, 0);
 ShowMessage(SysErrorMessage(GetLastError));
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
 Cancel := True;
end;

end.
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


La franja horaria es GMT +2. Ahora son las 22:04:00.


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