Einzelnen Beitrag anzeigen

Glados
(Gast)

n/a Beiträge
 
#12

AW: JEDI JCL Compression OnProgress wie verwenden

  Alt 22. Sep 2017, 13:35
Doch das Event wird bei jeder Datei aufgerufen.

Das ganze Event scheint irgendwie kaputt zu sein denn ShowMessage((Sender as TJclCompressionArchive).CurrentItemIndex.ToString); gibt auch immer 0 zurück.
Grundlage für das Event ist übrigens TNotifyEvent.

Ich würde die .Compress;-Routine ja selber gerne einbauen statt die fertige von JCLCompression.pas zu nutzen aber ich kann sie einfach in der Datei nicht finden.

Ich habe gerade eine erstaunliche Entdeckung gemacht. Mein alter Code funktioniert komischerweise und sämtliche Dateien werden erfasst. Aber nur wenn ich die ZIP-Methoden verwende statt 7z.
Meine aktuelle Berechnung im Event ist
Delphi-Quellcode:
if ((Sender as TJclCompressionArchive).ItemCount > _globals.CurrentFileIndex) then
 begin
  _globals.FileSizeTmp := (Sender as TJclCompressionArchive).Items[_globals.CurrentFileIndex].FileSize;
  Inc(_globals.BytesCopied, Value - _globals.ValueOld);

 if ((_globals.BytesCopied - _globals.BytesCopiedTmp) >= _globals.FileSizeTmp) then
  Inc(_globals.CurrentFileIndex);

 _globals.ValueOld := Value;
end;
Funktioniert bei TJclZipCompressArchive wunderbar, bei TJcl7zCompressArchive nicht.

Geändert von Glados (22. Sep 2017 um 13:45 Uhr)
  Mit Zitat antworten Zitat