06 November 2023
Embarcadero has released the beta of RAD Studio 12 recently, with quite some updates to C++Builder. But, as Delphi developers, we are really happy to see all the improvements to Delphi too! So, let’s dive in and see what is coming to Delphi 12!
FireMonkey has traditionally used styles to abstract UI rendering. These styles determine the appearance and functionality of UI elements across various platforms, including DirectX and Metal. Recently, the Skia library implementation for Delphi has been developed by Delphi enthusiasts in Brazil, providing a detailed abstraction for these platforms.
Skia itself is recognized for its capability in 2D graphics applications, with Google’s Chrome browser being one of its notable users. The library, developed by Google, emphasizes performance. Users of the Skia4Delphi library might be familiar with its features. RAD Studio now integrates Skia, which leads to improved rendering speeds and offers more components with a Skia-based driver.
For those of you using legacy VCL applications with MDI forms, upgrading Delphi applications has always been a challenge. VCL has been improved a lot, for example by integrating HighDPI, newer platform controls, and so on. But, the MDI model had been left in the past – until now.
The MDI (Multiple Document Interface) is an age-old UI design. Think of it as having multiple windows nested within a primary container window. Despite being dated, it’s effective, and many projects are built with this. However, it’s had its share of setbacks, especially with HighDPI monitors.
Embarcadero has taken note and has revamped the VCL MDI model. It’s still rooted in the core platform API, but major issues have been addressed. Plus, there’s a new tab-based UI for hosting MDI forms.
Delphi’s Object Pascal permits string literals and static strings embedded in code. Historically, these were limited to “short strings” with a 255-character cap. With Delphi 12, that changes.
Apart from the significant extensions to string literals, Delphi 12 brings more enhancements in the language, some of which might not be as immediately apparent. Unlike standard alias types, which create new, identical types, weak aliases are direct substitutes for original types. The driving force behind this is improved compatibility between 32-bit and 64-bit applications.
NativeInt could act as a strong alias for both
Integer (on 32-bit platforms) and
Int64 (on 64-bit platforms). This sometimes led to ambiguous compiler calls. Now, in Delphi 12.0,
NativeInt is a weak alias, meaning it can’t coexist with its counterparts in overloading scenarios.
This shift, designed to promote clearer 32-bit/64-bit compatibility, may require code adjustments, especially for 64-bit applications. Despite potential initial challenges, this change aims to simplify and future-proof the Delphi language.
As you can read, we are very much looking forward to the new Rad Studio / Delphi 12 release! These features we talked about are available in the current Yukon beta, available to customers with an active update subscription. If you are in that group and haven’t received an invite, you can contact Embarcadero or a sales partner and ask for the signup link.
If you don’t have an active subscription, you can consider buying a new license or contacting sales, and once you have a license you can ask to join the beta.
This blog post is based on a pre-release version of the RAD Studio software, and it has been written with specific permission by Embarcadero. No feature is committed until the product GA release.