#
Stream Extension Classes
ReadMe

## Description

This class library contains two units that provide some classes that can be used to extend the functionality of Delphi's TStream classes.

The PJStreamWrapper unit provides a class that can wrap any TStream descendant while the PJIStreams unit provides classes that implement the IStream interface for various TStream descendants.

## Demo Projects

Three demo projects are provided in the download:

1. `IStreamWrap.dpr` in the `IStreamWrapDemo` sub-directory. This is a VCL project that demonstrates the IStream wrapper classes in the PJIStreams unit.
2. `IStreamWrapFMX.dpr` in the `IStreamWrapDemoFMX` sub-directory. This is a FireMonkey 2 project that demonstrates the IStream wrapper classes in the PJIStreams unit. It is similar, but not identical, to `IStreamWrap.dpr`.
3. `StreamWrap.dpr` in the `StreamWrapDemo` sub-directory. This is a VCL project that demonstrates the PJStreamWrapper unit.

All the test projects are stored in the `Demos` directory.

## Unit Tests

Unit tests are provided for all classes in the `Tests` directory.

Tests require the DUnit unit testing framework, which must be installed in a location accessible to your Delphi compiler.

## Compatibility

The classes are compatible with the following:

- The Delphi 4 and later Win 32 compilers.
- The Delphi XE2 and later Win 64 compilers.
- Both ANSI and Unicode strings.
- The VCL and FireMonkey platforms (for Windows only).

## Installation

The Stream Extension Classes units are provided in a zip file. Once the units are extracted you can use them as required. There are several ways you may wish to do this:

- The simplest way is to add the units to your projects as you need them.
- To make the units easier to re-use you can add the folder where you extracted them to your Delphi search path and then simply use the units as required without needing to add them to your project.
- For maximum portability you can add the units to a package. More info...

The demo files are stored in the `Demos` sub-folder and the DUnit tests are in the `Tests` sub-folder.

## Documentation

The classes are all documented online.

## Update History

A complete change log is provided in `ChangeLog.txt` that is included in the download.

## License

The Stream Extension Classes are released under the terms of the Mozilla Public License, v2.0.

## Bugs and Feature Requests

Bugs can be reported or new features requested via the Issue Tracker.

If no similar report or request has been recorded already, use the New Issue link to add a new issue. Please select the most appropriate template from the Templates drop down list. You should also specify the `Project-streams` label.

## About the Author

I'm Peter Johnson – a hobbyist programmer living in Ceredigion in West Wales, UK, writing write mainly in Delphi. My programs and code are available from: http://www.delphidabbler.com/.

I can be contacted via the website.

Please let me know if you have any comments about the classes, but please use the Issue Tracker above to report bugs and request new features.
This document is copyright © 2000-2013, P D Johnson, www.delphidabbler.com.