私はOpen Source Abbreviaコンポーネントを使用していくつかのファイルを1つのZipにアーカイブしていますが、この間TAbMeter Gaugeを使用して進捗状況を表示しています。Abbrevia ProgressBar
代わりにこの目的のためにTProgressBarを使用することをお勧めします(Windowsとの標準インターフェースを維持)。
TAbMeterの代わりにTProgressBarを使用するにはどうすればよいですか?私は自分自身で進歩をコード化することができますが、Abbreviaコンポーネントが既にTAbMeterでこれを行っているのを見て、私はそれを書き直す意味がありません。
TAbMeterのPositionプロパティにアクセスすることができたとしても、私はTAbMeterと同期してTProgressBarの進捗状況をシミュレートできました。ここで
スニペットで、ファイル名はあなたがおそらくあなたのコード内でArchiveSaveProgressMeter
どこかを設定している。..
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;
コールバックの使用方法や管理方法がわからないので、提供した情報に基づいてここでTProgressBarを実装する方法がわかりません。 –
OK、私はあなたを助けようと更新しました。ボタンの 'OnClick'イベントハンドラと同じように、進行状況のコールバックを考えてみてください。 –
すごくいいです、完璧に感謝David、私は何か新しいことを学んだ:) –