폴더의 모든 파일을 압축하는 데모 코드를 사용하고 있습니다. 그러나 진행률 표시 줄에는 총 진행률이 아닌 모든 파일의 진행률이 표시됩니다.기존 Delphi 코드의 진행률 막대를 쉽게 수정할 수 있습니까?
진행률 표시 줄에 모든 파일 하나 하나에 대한 진행률이 아닌 진행률이 표시되도록 코드를 수정하는 쉬운 방법이 있습니까?
procedure DoProgress(Sender: TObject; Position, Total: Integer);
procedure DoCompressFile(Sender: TObject; const Filename: string);
....
procedure TJvZLibMultipleMainForm.DoCompressFile(Sender:TObject;const Filename:string);
begin
lblFilename.Caption := Filename;
Update;
end;
procedure TJvZLibMultipleMainForm.btnCompressClick(Sender: TObject);
var
z : TJvZlibMultiple;
begin
ForceDirectories(ExtractFilePath(edFilename.Text));
z := TJvZlibMultiple.Create(nil);
Screen.Cursor := crHourGlass;
try
lblFilename.Caption := '';
pbProgress.Position := 0;
z.OnProgress := DoProgress;
z.OnCompressingFile := DoCompressFile;
z.CompressDirectory(edSrcFolder.Text,true,edFilename.Text);
finally
z.Free;
Screen.Cursor := crDefault;
end;
pbProgress.Position := 0;
lblFilename.Caption := 'Ready';
end;
procedure TJvZLibMultipleMainForm.DoProgress(Sender: TObject; Position, Total: Integer);
begin
pbProgress.Max := Total;
pbProgress.Position := Position;
Update;
end;
TJvZlibMultiple.CompressDirectory의 구현에 따라 달라집니다. 출처 나 문서를보고 원하는 것을 할 수있는 방법이 있는지 확인하십시오. – jpfollenius
각 파일의 소요 시간에 따라 사용자는 두 개의 진행률 표시 줄을 볼 수 있습니다. 여기서 구현 한 내용을 그대로 유지하고 완료된 각 파일을 증가시켜 전체 진행률을 보여주는 진행률 막대를 추가 할 수 있습니다. – Argalatyr