[b]uses[/b]
AbZipTyp, AbArcTyp, AbZipPrc;
[b]type[/b]
TZipStream = [b]class[/b](TAbZipArchive)
[b]private[/b]
[b]procedure[/b] ZipHelper(Sender : TObject; Item : TAbArchiveItem; OutStream : TStream);
[b]procedure[/b] ZipHelperStream(Sender : TObject; Item : TAbArchiveItem; OutStream, InStream : TStream);
[b]public[/b]
[b]constructor[/b] CreateFromStream( aStream : TStream; [b]const[/b] ArchiveName : [b]string[/b] ); [b]override[/b];
[b]end[/b];
[navy][i]{ TZipStream }[/i][/navy]
[b]constructor[/b] TZipStream.CreateFromStream(aStream: TStream;
[b]const[/b] ArchiveName: [b]string[/b]);
[b]begin[/b]
[b]inherited[/b];
DeflationOption := doMaximum;
CompressionMethodToUse := smDeflated;
InsertHelper := ZipHelper;
InsertFromStreamHelper := ZipHelperStream;
[b]end[/b];
[b]procedure[/b] TZipStream.ZipHelper(Sender: TObject; Item: TAbArchiveItem; OutStream: TStream);
[b]begin[/b]
AbZip(TAbZipArchive(Sender), TAbZipItem(Item), OutStream);
[b]end[/b];
[b]procedure[/b] TZipStream.ZipHelperStream(Sender: TObject; Item: TAbArchiveItem; OutStream, InStream: TStream);
[b]begin[/b]
[b]if[/b] Assigned(InStream) [b]then[/b]
AbZipFromStream(TAbZipArchive(Sender), TAbZipItem(Item), OutStream, InStream);
[b]end[/b];