Cita:
Empezado por jonydread
amigo escafandra estoy aprendiendo recien sobre esto y trato de buscar antes de consultar para no dar lata jejej en fin adapte el codigo y funciona de lujo la progressbar pero como sabes en este hilo busco copiar varios archivos y con copyfileext no he encontrado si conoces alguna forma o de algun ejemplo agradeceria mucho.
saludos!
|
Lo siento siempre que me rindo se me ilumina en todo caso aca esta por si sirve tiene detalles es de pruebas pero funciona
Copiar varios archivos con CopyFileEx y barra de progreso en delphi
Código Delphi
[-]function ProgressRoutine(TotalFileSize, TotalBytesTransferred, StreamSize, StreamBytesTransferred: LARGE_INTEGER; dwStreamNumber, dwCallbackReason: DWORD; hSourceFile, hDestinationFile: THandle; lpData: Pointer): DWORD; stdcall;
var
Value: integer;
begin
Application.ProcessMessages();
if(dwCallbackReason = CALLBACK_CHUNK_FINISHED) then
Form1.ProgressBar1.Position:= (int64(TotalBytesTransferred) * 100) div int64(TotalFileSize);
Result:= PROGRESS_CONTINUE;
end;
Código Delphi
[-]procedure TForm1.Button2Click(Sender: TObject);
var
DestDir,SourceFile,Destino: string;
Counter: integer;
saveDialog : TSaveDialog;
begin
for Counter := 0 to opendialog1.Files.Count - 1 do
begin
SourceFile := opendialog1.Files[Counter];
saveDialog := TSaveDialog.Create(self);
saveDialog.Filename := opendialog1.Files[Counter];
DestDir:= extractfilepath(saveDialog.Filename);
Destino := DestDir+'copia'+extractfilename(saveDialog.Filename);
CopyFileEx(PChar(SourceFile),PChar(Destino), @ProgressRoutine, nil, @Cancel,0);
ShowMessage(SysErrorMessage(GetLastError));
end;
end;