Estoy usando Open Source Abbrevia Components para archivar algunos archivos en una sola Zip, mientras esto sucede, estoy usando TAbMeter Gauge para mostrar el progreso.Abreviatura ProgressBar
Preferiría utilizar el TProgressBar para este propósito en su lugar (manteniendo una interfaz estándar con Windows).
¿Cómo puedo usar un TProgressBar en lugar del TAbMeter? Sé que podría codificar el progreso yo mismo, pero dado que los Componentes de Abbrevia ya lo han hecho en el TAbMeter, no veo sentido en reescribirlo.
Si pudiera acceder a la propiedad Posición del TAbMeter podría simular el progreso del TProgressBar sincronizando con el TAbMeter.
Aquí hay un fragmento, nombres de archivos es una TStringList que contiene los nombres de archivo para archivar ..
procedure ArchiveFiles(SaveAs: string; ProgressBar: TAbMeter);
var
AZipper: TAbZipper;
i: Integer;
begin
AZipper := TAbZipper.Create(nil);
try
AZipper.AutoSave := False;
AZipper.BaseDirectory := ExtractFilePath(SaveAs);
AZipper.ArchiveSaveProgressMeter := ProgressBar;
AZipper.FileName := SaveAs;
AZipper.StoreOptions := AZipper.StoreOptions + [soStripDrive, soRemoveDots]
- [soStripPath];
AZipper.TempDirectory := GetTempDirectory;
try
Screen.Cursor := crHourGlass;
ProgressBar.Visible := True;
for i := 0 to FileList.Count - 1 do
begin
AZipper.AddFiles(FileList.Strings[i], 0);
end;
finally
AZipper.Save;
AZipper.CloseArchive;
ProgressBar.Visible := False;
Screen.Cursor := crDefault;
end;
finally
AZipper.Free;
end;
end;
Gracias por la información, no estoy seguro de cómo usar o administrar las devoluciones de llamada, así que no estoy seguro de cómo podría implementar un TProgressBar aquí en base a la información que proporcionó. –
OK, lo he actualizado para intentar ayudarte. Piense en la devolución de llamada de progreso de la misma manera que usted piensa en un controlador de eventos 'OnClick'. –
Eso es genial, funciona perfecto gracias David, aprendí algo nuevo :) –