Test your Delphi knowledge: Exception handling

With this code, what will happen:

program FunWithDelphi;


  Controls, SysUtils;

    raise TMouse.Create;
    on E:Exception do
      Writeln(E.Classname, ': E is Exception');
    on E:TObject do
      Writeln(E.Classname, ': E is TObject');
    on E:TMouse do
      Writeln(E.Classname, ': E is TMouse');
  • the program will print “TMouse: E is Exception”
  • the program will print “TMouse: E is TObject”
  • the program will print “TMouse: E is TMouse”
  • compilation fails
  • the program will terminate with a runtime error

Continue reading

RabbitMQ 3.5.0 free open source message broker released

The RabbitMQ team announced the release of RabbitMQ 3.5.0. This release adds support for priority queues which were available as a plugin before. Performance is improved; in particular messages smaller than configurable size are embedded in the queue index to reduce I/O and memory consumption. Stability of clustering and autoheal partition handling is improved as well. A new pause_if_all_down partition handling mode is added. The management web UI now shows many more I/O statistics. Binary and source distributions of the new release can be found on the download page.

For application integration in Delphi and Free Pascal, Habarisoft offers a commercial client library for RabbitMQ 3.4.0 and newer.

ScroogeXHTML 6.8 – fast RTF to HTML / XHTML converter

Habarisoft is pleased to announce the release of ScroogeXHTML 6.8, a fast RTF to HTML / XHTML converter library for Delphi and Free Pascal.

A off-line demo version, the “Getting Started” guide (PDF) and the complete API documentation are available.

An interactive on-line demo is available for ScroogeXHTML for the Java™ platform. (Please be aware that RTF table conversion is still experimental in the on-line demo and not available for Delphi yet).

 Release notes

  • Added ConvertFields property for field expressions (default False)
  • Added Hyperlink field support class TLinkURIBuilder
  • Added HTML Anchor support
  • Added unit SxConst which declares margins (configurable with SCROOGE_NO_INDENT option)
  • Documentation generated with doxygen 1.8.8
  • Use strict private scope where possible
  • Changed THyperlinkEvent signature to procedure(Sender: TObject; const TextElement: ISimpleDomTextNode) of object
  • Moved TRichEdit conversion to separate class TBTScroogeXHTMLVCL
  • Added HTTPS as protocol for RequireHTTP hyperlink option
  • Removed unused hyperlink option hyHyperlinkFootnotes
  • Tested with Free Pascal 2.6.4
  • Web demo built with Indy 10.6.2

Habari Client libraries release 2015.02

Habarisoft released new versions of Habari Client libraries for Delphi and Free Pascal application integration with free open source message brokers.

Tested with current message broker versions

  • Apache ActiveMQ 5.11.0
  • Apollo 1.7
  • HornetQ 2.4.0.Final
  • Open MQ 5.1 b09
  • RabbitMQ 3.4.3


  • The throughput test application uses the subscribe.receipt=true connection parameter to ensure that the broker is ready before the producer starts sending messages


  • Connection factory – As a preparation for further code streamlining between library versions, a new API compatible factory class TBTConnectionFactory is included in this version which will replace TBTJMSConnectionFactory in the next major release
  • Password logging – If Log4D logging is enabled, the passcode header value will be not be logged but replaced with *** in the log output
  • Optional units – Several units which are not covered by basic support have been moved to the source/optional directory (BTMessageTransformer*, BTStreamhelper, SSL support units)
  • Refactorings – Refactorings reduce unit dependencies and hard type casts in several places
  • Cleanup – Removed unused procedure TBTStompClient.Connect(const AURI: IURI)
  • Documentation – More documentation improvements and streamlining between library versions

Previous version release notes: Habari Client libraries release 2014.09



Habari Client Libraries


Habari Web Components with JclDebug stack trace support

The upcoming release of Habari Web Components 2.9 introduces experimental support for stack trace output with JclDebug, part of the open source Jedi Code Library, in addition to the already included support for madExcept stack traces.

Exception stack traces are available in development stage mode, and require linking with detailled map information. Please note that these experimental features are not covered by the standard basic support scheme for Habari Web Components and not guaranteed to work with all versions of Delphi / Free Pascal.

The screenshots below illustrate the output on screen and in the Log4D logging output:

Habari Web Components

ScroogeXHTML for the Java™ platform 4.5 – fast RTF to HTML/XHTML converter

Habarisoft released its RTF to HTML/XHTML converter library, ScroogeXHTML for the Java™ platform, version 4.5.

Release Notes:

  • Added support for bookmarks. Bookmarks will be converted to id attributes of additional <span> elements. Bookmark processing is disabled by default and can be enabled by setting ScroogeXHTMLBase.setConvertBookmarks(boolean) to true.
  • Added support for field expressions to capture hyperlink targets. Field expression processing is disabled by default and can be enabled by setting ScroogeXHTMLBase.setConvertFields(boolean) to true.
  • Added experimental helper class LinkURIBuilder which converts field expressions to hyperlink target URLs
  • Updated installer to version 5.0.0-rc3

On-line demo

The page secure.habariwebcomponents.de/sxd/ allows to upload a RTF file and convert it to different output formats (including HTML5, HTML 4.01 and XHTML).

API documentation

The online API documentation is available at http://www.habarisoft.com/scroogexhtml_j/4.5/docs/api/index.html.

Two server deployment licenses included

For the deployment on client/server production systems, the Single Developer license already includes two server deployment licenses. License types are explained on http://www.habarisoft.com/scroogexhtml_license.html

Open Source GlassFish 4.1 Server Released

The new release of GlassFish 4, the world’s first Java EE 7 application server brings:

  • updated platform support (Java 8, CDI 1.2, and WebSocket 1.1)
  • Tyrus (WebSocket 1.1 RI)
  • Jersey (JAX-RS 2.0 RI). Updated with some impressive new features
  • OpenMQ (JMS 2.0 RI). Open MQ adds support for communicating over WebSocket.

GlassFish 4.1 can be downloaded from https://glassfish.java.net/.

Delphi and Free Pascal developers can communicate with OpenMQ, the JMS implementation in GlassFish 4, with Habari Client for OpenMQ by Habarisoft.


Habari Client libraries release 2014.09

Habarisoft released new versions of Habari Client libraries for Delphi and Free Pascal application integration with free open source message brokers.

Tested with current message broker versions

  • Apache ActiveMQ 5.10.0
  • Apollo 1.7
  • HornetQ 2.4.0.Final
  • Open MQ 5.1 b09
  • RabbitMQ 3.3.5

Continue reading