Bazı Dosyaları Tek bir Zip'e Arşivlemek için Açık Kaynak Abbrevia Bileşenlerini kullanıyorum, bu sırada ilerlemeyi görüntülemek için TAbMeter Göstergesini kullanıyorum.Abbrevia ProgressBar
Bu amaçla TProgressBar'ı kullanmayı tercih ederim (Windows ile standart bir arabirimin korunması).
TABMeter yerine TProgressBar'ı nasıl kullanabilirim? Biliyorum ki ilerlemeyi kendim kodlayabilirim, ancak Abbrevia Components'ın bu işi TAbMeter'de yaptığını gördüğümde, onu yeniden yazmanın bir anlamı yok.
TAbMeter öğesinin Konum özelliğine erişebilseydim, TProgressBar'ın ilerlemesini TAbMeter ile senkronize olarak simüle edebilirim. İşte
pasajıdır, FileNames dosya adları arşivlemek içeren bir TStringList ..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;
Bilgiler için, geri bildirimleri nasıl kullanacağınız veya yöneteceğinizden emin değilim, bu nedenle sağladığınız bilgilere dayanarak bir TProgressBar'ı nasıl uygulayacağımı bilmiyorum. –
Tamam, size yardımcı olmaya çalışıyorum. İlerleme geri bildirimini, bir “OnClick” olay işleyicisini düşündüğünüz şekilde düşünün. –
Thats harika, mükemmel çalışıyor teşekkürler David, yeni bir şey öğrendim :) –