DeHL 0.7 is up

DeHL

After a few months of no releases, I finally decided to throw one out — so here it is, DeHL 0.7. This release is adding three more collection, new types and fixes some internal limitations of the library.

For the people that never tried DeHL – it is a collection of types and classes that use (and even abuse) the newer generation Delphi compilers into obtaining some features that were impossible in the past releases.

The newly added collection classes are:

  • TPriorityQueue<TPriority, TValue> which implements the priority queue.
  • TDistinctMultiMap<TKey, TValue> that is similar to TMultiMap but uses sets instead of lists to store the values. This ensures that all values for a key are distinct. As usual 2 more flavors of this class exist – TSortedDistinctMultiMap<TKey, TValue> and TDoubleSortedDistinctMultiMap<TKey, TValue>.
  • TBidiMap<TKey, TValue> implements the concept of bi-directional map in which there is a bi-directional relation between keys and values (both are actually keys). TSortedBidiMap<TKey, TValue> and TDoubleSortedBidiMap<TKey, TValue> are the other two flavors of this class.
  • TStringList<T> and TWideStringList<T> collections are actually generic variants of the normal TStringList and TWideStringList (which are used as base classes).

Other enhancements include:

  • Singleton<T> class. Which can be used to access the same instance of a class across all application.
  • TWideCharSet (this was inspired on other implementations out there but use dynamic arrays to save memory and speed in certain circumstances).
  • TType speed and reliability increases.
  • A global DeHL.Defines.inc files for all $IFDEF needs.
  • Types such as Nullable<T>, Scoped<T> and TKeyValuePair<TKey, TValue> now have their own type classes.

For a full list of changes see the changelog.

This release also makes use of some new improvements of the Delphi 2010 compiler (such as class constructors, or some fixed problems in the generics handling) which makes some features unavailable on Delphi 2009. I plan to keep Delphi 2009 supported for as long as possible, but many new planned features are not going to be available on that platform.

Have Fun!

You May Also Like

About the Author: Alexandru Ciobanu

5 Comments

  1. Great job, Alex!

    I’ve payed attention to the DeHL project for a long time, while I’m developing another open-source project (Delphi Spring Framework), whose objective is to provide robust, flexible and extensible Infrastructure Framework for Delphi Enterprise Applications. (Delphi 2010 platform)
    You may check it out in http://code.google.com/p/delphi-spring-framework/

    I got very excited when I first saw the DeHL project. Actually there are some simple wrappers around generic interface collections (ICollection, IList, etc.) in the delphi spring framework (Spring.Collections), but it’s not so rich as the DeHL project. There are so many things to be done for an instrastructure framework. I think it’ll be a great pleasure for me and other developers If the DeHL project could be integrated to Delphi Spring Framework. {As you can see, there are many projects & tools in the framework, including:

    * Spring Core Library
    * Spring Logging Framework
    * Spring Entity Framework
    * Spring Communications Framework
    * Spring Connection Manager Component
    * Spring DataForm Wizard

    }

    I’m now working with the Spring Core Library (IoC Container, Validation Framework, etc.). I believe it will be perfect if we can work together to make delphi get more powerful.

    Looking forward to your reply.

    Yours sincerely

    Zuo Baoquan (Paul)

Leave a Reply

Your email address will not be published.

This site uses Akismet to reduce spam. Learn how your comment data is processed.