Einzelnen Beitrag anzeigen

Benutzerbild von Garfield
Garfield

Registriert seit: 9. Jul 2004
Ort: Aken (Anhalt-Bitterfeld)
1.335 Beiträge
 
Delphi XE5 Professional
 
#2

Re: [TDFUnrar] Entpackenstatus einer Datei

  Alt 19. Sep 2007, 14:48
Habe es leider noch nicht selbst ausprobiert, aber auf der Seite http://www.nikse.dk/delphi.html gibt es eine function RarCallbackProc mit "Current file progress" und "Total progress":

Delphi-Quellcode:
function RarCallbackProc(msg: UINT; UserData, P1, P2: integer): integer; stdcall;
var
  s: string;
begin
  Result := 0;
  case msg of
    UCM_CHANGEVOLUME:
      if (P2 = RAR_VOL_ASK) then
      begin
      end;
    UCM_PROCESSDATA:
    begin
      if RARExtract then
      begin
        lKBytesDone := lKBytesDone + P2; // bytes written so far

        // Current file progress
        frmUnrar.pbCurrentFile.Position := frmUnrar.pbCurrentFile.Position + P2;
        frmUnrar.lblBytes.Caption := Bytes2String(lKBytesDone) +
          ' kb of ' + Bytes2String(RARHeaderData.UnpSize) + ' kb';

        // Total progress
        lKBWritten := lKBWritten + (P2 div 1024);
        frmUnrar.pbTotalProgress.Position := lKBWritten;
        frmUnrar.lblTotalMB.Caption := Bytes2String(lKBWritten) +
          ' mb of ' +
          Bytes2String(lTotalSize) + ' mb';
        frmUnrar.Refresh; // refresh misc status text
        Application.ProcessMessages; // like DoEvents in VB
        Result := 1;
      end
      else
        Result := 1;
    end;
  end;
end; // RarCallbackProc
Gruss Garfield
Ubuntu 22.04: Laz2.2.2/FPC3.2.2 - VirtBox6.1+W10: D7PE, DXE5Prof
  Mit Zitat antworten Zitat