I've opened a newsgroup for the Delphi Relax project, as communicating over blog comments or code review is not enough. The newsgroup is for people willing to cooperate with the project or investigate it further. For general requests, the blog is fine. While all relevant announcements will show on my blog, minor fixes and updates will be in the newsgroups. You can use for reportign bugs and sending updated code units, but for discussions that won't be effective. I have to say that Indefero hosting lacks a discussion board.

In practice, I've used my existing support server (, hosting a free area. It requires login (to avoid spam) but there is one shared user name and password, more or less like my personal newsgroup, now very rarely used. Access information is:


user: relax

pwd: rest

The server requires authentication before getting the list of groups. In most NNTP clients there is an "always authenticate" option. Sotty I pikced a very old fashioned technology, instead of a web-based discussion board, but this is way mroe effective for me and let's me keep an eye the posts, follow threads, and the like. I might add a web front end in the future, but don't think this is really necessary. Again, this area is meant mostly for developers interested in getting involved.

New Units

Since the complete version of Relax is being used for multiple projects now (plus some demos), keeping some of the core units duplciated in the projects was turning into a mess. So I took a bold step and posted almost everything to the public repository on Now it will take quite some time before I update the documentation to cover those, but in case you are curious, here is the list of the new units and their role:

  • RlxActiveRecord.pas has the class implementing the ActiveRecord pattern, in a rather simple way. It uses RTTI (and attributes) to generate SQL statements.
  • RlxAttributes.pas contains the definition of several Custom Attributes use to control the the database mapping, the user interface mapping, and JavaScript validation.
  • RlxConfiguration.pas has a simple class to read the configuration from an INI file.
  • RlxDynamicServerClass.pas has code for dynamically creating a DataSnap server class (borrowed with permission from Andreano)
  • RlxMail.pas has the initial implementation of a class for sending email. Interestign is you can use relax in the email text, and do a sort of mail-merge with database data
  • RlxSessions.pas has a rather sophisticated extension to DataSnap session management. For each session, it adds extra data to a dictionary. Needs to be extended to allow using subclasses with extra data.
  • RlxWebUI.pas has the JSON and JavaScript generation code. It generated JavaScript dynamically for moving data to and from JSON obejcts to the user interface, adds validation code, and has limited support for scaffoldign (that is, generating the HTML form from the class). This is likely the most important unit of the entire system!

As you can see there is a lot more to Delphi Relax than I've documented so far. Will keep writing docs and small focused demos to help understand it... but this will take time. Stay tuned!