AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

System.Zip Onprogress

Ein Thema von zeras · begonnen am 12. Nov 2023 · letzter Beitrag vom 13. Nov 2023
Antwort Antwort
zeras

Registriert seit: 11. Mär 2007
Ort: Saalkreis
1.633 Beiträge
 
Delphi 12 Athens
 
#1

System.Zip Onprogress

  Alt 12. Nov 2023, 18:13
Ich habe eines meiner Programme nun auf System.Zip umgestellt, wollte aber auch den Fortschritt darstellen.
Leider komme ich nicht weiter.
Hier wird es ein wenig erklärt.
Ich habe die Ziproutinen in eine Unit gepackt, die wie folgt aussieht:

Delphi-Quellcode:
procedure OnZipProgressEvent(Sender: TObject; FileName: string; Header: TZipHeader; Position: Int64);
begin
  if PreviousFilename <> FileName then
  begin
   // StaticText1.Caption := ExtractFileName(FileName);
    PreviousFilename := FileName;
    fMain.UpdateZipProgressPosition(0);
  end
  else
    fMain.UpdateZipProgressPosition((Position * 100) div Header.UncompressedSize);
  //Application.ProcessMessages;
end;

function EntzipAllFiles(Srcfname, DstDir: string): boolean;
var
  Zip : TZipFile;

begin
  Result := false;
  Zip := TZipFile.Create;
  try
    Zip.ExtractZipFile(SrcfName, DstDir, OnZipProgressEvent); >> Fehler E2250 Es gibt keine überladene Version von Extractzipefile
    Zip.Close;
    Result := true;
  finally
    Zip.Free;
  end;
end;
Was mache ich falsch?
Matthias
Es ist nie falsch das Richtige zu tun!
- Mark Twain
  Mit Zitat antworten Zitat
mytbo

Registriert seit: 8. Jan 2007
472 Beiträge
 
#2

AW: System.Zip Onprogress

  Alt 12. Nov 2023, 20:17
Was mache ich falsch?
TZipProgressEvent ist eine "procedure of object", die Umsetzung in deinem Beispiel aber nicht.

Bis bald...
Thomas
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.572 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: System.Zip Onprogress

  Alt 12. Nov 2023, 22:18
Sprich, wenn du die lose herumliegenden Funktionen in eine Klasse verpackst, klappt es.

Und wenn du dann noch den direkten Zugriff auf das Formular aus einer solchen Unit korrigierst, hast du auch keine Kreuzbeziehung mehr zwischen den Units (die ich aktuell vermute). Du könntest z.B. an deine Entpackroutine eine Referenz auf UpdateZipProgressPosition mitgeben, ein Interface verwenden oder ähnliches.
Sebastian Jänicke
Alle eigenen Projekte sind eingestellt, ebenso meine Homepage, Downloadlinks usw. im Forum bleiben aktiv!
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.993 Beiträge
 
Delphi 12 Athens
 
#4

AW: System.Zip Onprogress

  Alt 13. Nov 2023, 01:33
Es muß nichtmal eine Klassen-Instanz sein.
Eine Class-Function reicht auch.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:38 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz