Delphi RTL

The Delphi RTL is a Delphi-compatible RTL and non-visual VCL implementation for the Elements compiler (and more specifically, the Oxygene language).

The goal of this project is to reproduce a reasonable subset of standard Delphi APIs used by a large percentage of Delphi code bases, in order to facilitate and ease the porting of such code bases to Oxygene to re-use business logic in .NET, Cocoa, Java/Android or Island applications.

The goal is most decidedly not to get existing Delphi projects or applications to just recompile out of the box. The differences between the platforms are too significant, and there is only so much abstraction a library such as this can provide; some changes to existing code will continue to be required for it to build in Oxygene, and some paradigms need to be rethought to fit in well with the platforms.

Among other things, Delphi RTL provides:

  • An TObject alias type and extensions that provides Delphi-Compatibility for that class, including the ability to call .Free (even though the calls will be ignored as Oxygene relies on GC or ARC to actually free objects.

  • A replacement String type that behaves like Delphi's string, with seamless bridging semantics to the platform's native Strings.

  • Clean implementations of many (but far from all) common methods and classes from Delphi's RTL, such as SysUtils and the like.

Read more about Delphi RTL in the API section.

Note: Delphi RTL is not to be confused with using Island/Delphi support to import a Delphi SDK for use with Elements, which gives you access to the actual RTL and VCL classes from Delphi (at the cost of being tied to native code, and requiring a Delphi license).