Unit pvlAbStr

************************************************ This Source Code remains Copyrighted to CopyRight (c) 1998 MBM Computer Solutions. It may be distributed/used freely without restrictions but the author and copyright holders cannot be held responsible for any damages arising out of the use of this product. This Component is designed to Inflate/Deflate Streams using Turbo Power Software's Abbrevia. Unlike Abbrevia's Inflatestream/DeflateStream it allows Multiple streams to be compressed into one stream and allows for a progress indicator. New Properties (All at runtime Only) : CompressedStream : TStream This is the stream to Inflate into/Deflate out of. UncompressedStream : TStream This is the Stream to get the uncompressed datafrom /write the uncompressed data to. Action : tacNone : The component is idle. tacInflate : Inflate the stream. tacDeflate : Deflate the next stream. tacSkip : Skip the next stream. New Events : OnProgress : Get the percentage complete; OnWantComment : Add a comment to the stream when Deflating. OnHaveDetails : This is called for Inflating. You are passed the comment and can then decide if you still want to inflate. If you abort here it will perform a skip instead. New Methods : Procedure Skip : Skip the next stream. Procedure Inflate : Inflate the stream. Procedure Deflate : Deflate the next stream. Technical details : The component inserts a small header (10 Bytes + The Length of the comment) into the stream. The Latest version can always be found on my WebSite http://www.global.co.za/~peterv/ The Author may be contacted via email peterv@global.co.za post P A van Lonkhuyzen PO Box 1041 Randpark Ridge 2156 South Africa ***************************************************) {$D-,L-} {Remove if you wish to debug this code

Classes

TpvlAbbreviaStreamer -

Functions

Register -

Types

TpvlABAction
TpvlABOnHaveDetailsEvent
TpvlABOnWantCommentEvent
TpvlABProgressEvent
TpvlABSupport

Constants

Variables


Functions


procedure Register;


Types


TpvlABAction = (tacNone,tacDeflate,tacInflate,tacSkip);

TpvlABOnHaveDetailsEvent = Procedure (Sender : TObject; Comment : ShortString; var Abort : Boolean) of object

TpvlABOnWantCommentEvent = Procedure (Sender : TObject; var NewComment : ShortString) of object

TpvlABProgressEvent = Procedure (Sender : TObject; Progress : byte;var Abort : Boolean) of object

TpvlABSupport = record
CompressedSize : Longint;
Comment : ShortString;
StartPos : Longint;
CompressedstartPos : LongInt;
Aborted : Boolean;
end;

Constants


Variables