rjExContainers is a powerful all purpose Extensible Container Library. Based on its 4 general base containers (vector, doubly-linked list, n-ary tree and hash / dictionary), rjExContainers implements over 50 different container types with more than 1000 methods, properties and fields. All rjExContainers provide both typed and untyped access to their items and their item's elements. Items are made up of Pascal records (not objects!), can be of any size and store elements of any kind and even of multiple elements in one item. rjExContainers already include containers for 1 AnsiString, 1 Cardinal, 1 Integer, 2 AnsiStrings, 1 AnsiString plus 1 Integer / 1 Cardinal / 1 Object, 2 AnsiStrings plus 1 Integer / 1 Cardinal and many more. Via the ItemSize property, all rjExContainers are fully extensible without breaking their original element integrity. rjExContainers maintains a fully hierarchical design which allows to extend existing containers or build new ones very easily with or even without subclassing.
rjExContainers are very fast, have a very small memory footprint and come with full documentation and help. So why not give them a try?
rjExContainers use unique telling names for their fields, methods and properties. Once you are familiar with their naming, rjExContainers should be quite easy to use.
Since all rjExContainers descent from TExContainer, its understanding is quite important for the rest of the library. The properties of TExContainer influence the functioning of all descendant containers, regardless of type.
All classes based on TExVector implement a behaviour very similar to, but more flexible and powerful behavior than Delphi's TList and TStringList classes. Everybody familiar with those classes should have no problem using, for example, TObjectVector or TAnsiStringVector.
TExList implements a doubly-linked list of Items. Each Item is connected to its previous and next Item. Compared to TExVector containers, this allows very fast insertions and deletions at both the beginning and end of the containers.
TExTree maintains items in a tree-like structure. Each item can have children and grandchildren, very similar to a TreeView structure.
TExAnsiDict provides very instantaneous access to its items via their keys, which are stored as AnsiStrings. Descendant classes implement case-sensitive (TExAnsiCSDict) or case-insensitive (TExAnsiCIDict) behaviour. The more general TExAbstractDictHash class serves as a base class for both Hash Vectors and Dictionaries.
Detailed help is provided by the links below.
A more detailed introduction and demo programs are in the making.
In case of any problem please contact the Author.
Please read the License Agreement.