Have an amazing solution built in RAD Studio? Let us know. Looking for discounts? Visit our Special Offers page!

What’s Coming in Delphi and C++Builder Libraries

libraries update

If you are following what’s happening around RAD Studio, you’ve likely seen our announcement in terms of a renewed C++ language focus, What’s Coming for C++Builder: An Amazing Preview. As a follow-up to our exciting C++Builder updates, we wanted to share some specifics on what we have planned for the other parts of the product, in particular our VCL and FireMonkey UI libraries.

A New Foundation For FireMonkey: Skia

RAD Studio’s multi device, cross-platform UI library is based on the concept of abstracting the actual rendering of the UI elements, using styles. Styles are implemented using some primitive graphical objects and elements, mapped by FireMonkey to different graphic drivers, from DirectX to Metal.

Over recent years, a library has emerged in this space, which offers a higher level of abstraction with more complex primitives while working on top of the same platform native drivers FireMonkey supports. This library is called Skia and it provides incredible power for 2D graphic applications of all kinds, along with a significant performance focus. Skia powers some of the most successful multi device applications today, starting with Google’s Chrome browser.

It is possible to use Skia to power FireMonkey applications today, by using the Skia4Delphi library, which is also available directly in GetIt. What’s coming along in future versions of RAD Studio is a deep and out-of-the-box integration of Skia and Skia4Delphi: By making it part of the product, we’ll offer a smoother experience and we’ll make it a first class citizen in the FireMonkey ecosystem. The advantages will include faster rendering, specifically on Android, but also a number of additional features and components available when using a Skia-based driver.

Notice that as part of the Skia support, we don’t just plan to use it as a FireMonkey GPU driver, but plan also including specific UI controls for FireMonkey and even for the VCL library.

sklabel decorated

(The SkLabel control supports multiple sections of a single label with different text attributes, as you can see in the Object Inspector)

VCL Modernization: The Return of MDI

On a totally different front, we know that a lot of our customers have existing VCL applications they want to keep active and modernize. The VCL library has continuously provided strong support for application modernization, such as HighDPI support, a sophisticated styling architecture, the use of newer versions of the platform controls, the integration of WinRT API, the support of MSIX deployment, and the integration of the WebView2 control (the Chromium-based engine of the Edge browser). 

Over the past several years we have moved away from the support for the MDI model (the Multiple Document Interface). This is a relatively outdated UI paradigm, based on having multiple windows (showing the same type of content or different types) hosted in a container main window. As much as it is old-style, the MDI model can be effective and a lot of our customers have used it for a long time, have trained their users around it, and for these reasons they would rather keep using it. One of the downsides of using the VCL MDI model is that it’s a wrapper around the Windows platform support – and that support has many issues on HighDPI monitors, for example.

rad12 mdilight  rad12 mdidark

(above) An MDI Application with full styling support on High DPI, shown using the Glow VCL style (on the left) and the Aqua Light Slate VCL style (on the right)

After extensive research and engineering review, we have decided it was worth making an attempt to work around all of the main platform issues, and rework the VCL MDI model. While still based on the core platform API, we have worked around and addressed most platform issues. Additionally, we are introducing a new option for hosting MDI forms (or any form in general) in a tab based UI, as you can see below. For any of our customers using the MDI UI, the next release will offer a breath of fresh air – injecting some new life in applications. In particular we have focused on both HighDPI support and VCL styles support, so you can embrace all existing VCL modernization features also for MDI applications.

rad12 mditabs

(above) The new tabbed based MDI model

And Much More

There is much more Embarcadero R&D is currently working on, in terms of libraries, IDE, compilers, platform updates and database access. The next release of RAD Studio will be a huge release for C++ developers, but it will be a very significant release also for Delphi developers, with enhancements in all of the product areas.

Stay tuned for more information in the coming months and early beta access, starting with our customers with an active Premium subscription.

Disclaimer: All new features and improvements discussed in this blog post for future versions of RAD Studio are not committed until completed, and GA released.

Reduce development time and get to market faster with RAD Studio, Delphi, or C++Builder.
Design. Code. Compile. Deploy.
Start Free Trial   Upgrade Today

   Free Delphi Community Edition   Free C++Builder Community Edition

About author

Marco is one of the RAD Studio Product Managers, focused on Delphi. He's the best selling author of over 20 books on Delphi.


Leave a Reply

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