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.
(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.
(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.
(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.
Design. Code. Compile. Deploy.
Start Free Trial Upgrade Today
Free Delphi Community Edition Free C++Builder Community Edition
The most important info, when it cames?
I assume you mean “when will it be available?”
Right now we are not at the stage where we can share any dates, even approximate ones. What I can tell you is that there is a lot of work going into this release and it is planned to include a super selection of new features and functionality (remember our disclaimer, nothing is definite until the release goes to General Availability) – and this kind of work takes time to integrate and get right. I know the team are working extremely hard on this and we’re all excited to see what is coming. Everyone wants it as soon as possible, I’m sure, and that’s the thing: it will be available as soon as we possibly can.
Not sure what you mean by ‘integration’ as such. There are libraries out there for OpenCV -> https://github.com/Laex/Delphi-OpenCV-Class
Did you mean “OpenAI integration”? If so, right now, it’s very much a moving target plus I am sure there would be legal things to consider to include something like ChatGPT into the IDE permanently (Microsoft can get away with it since they have a sponsorship deal worth bazillions with OpenAI). There are plenty of developers who have created third-party OpenAI ChatGPT plug-ins though, available in GetIt:
We also have some articles on that too: https://blogs.embarcadero.com/is-powerful-ai-really-going-to-steal-our-jobs/
Please support rigth-to-left for tabbed MDI 🙂
I assume you mean RTL languages? Or do you mean the tab alignment?
What would be nice is in the past a form could be debugged as a app. later used in bigger app by setting that debugged form/codebase into another app by using a tabsheet as the client or Parent at runtime. So with a little threading work have the child forms running in the IDE. Like custom components this helps break the project up into smaller units.
The D11 is huge improvement! thanks
I’m not 100% sure what you mean by debugging a form as an app. Did you mean the FireUI tool? You can read about it here: https://docwiki.embarcadero.com/RADStudio/Alexandria/en/FireUI_Live_Preview. If that’s not what you meant could you explain a little more and I’ll see if I can help some more.
What is the ETA on the MDI issues like https://quality.embarcadero.com/browse/RSP-39899? It is a real issue in our migration from Delphi 2007 to D11.3 Will this be fixed before this MDI push? If not before I can only assume it will be deployed with?
Addressing that issue and many similar ones required a significant redesign of our MDI support, to work around actual bugs in the underlying Windows support. The issue should get addressed by this work, coming in the next release
The links in the e-mails from embarcadero is blocked by my internet provider due to security issues. Could you please make certain that all certificates are current and updated so the links are not blocked?
I just checked the Embarcadero domains via MX ToolBox and it doesn’t appear that we have any problems and all our DMARC type entries and applicable certificates are up to date. Not sure why you’re having problems receiving emails from us, it could be an issue with your own provider?
You can check MX records and many other useful settings for yourself here: https://mxtoolbox.com
OpenCV is What I mis, I have to use Visual Studio To build my apps with OpenCV. And thats not wat I want.
Not sure why you need VS for OpenCV – there are perfectly capable libraries for using OpenCV with Delphi: https://github.com/Laex/Delphi-OpenCV-Class