What's new in RAD Studio 13

This webinar introduces RAD Studio 13 “Florence,” an integrated development environment (IDE) from Embarcadero designed for building native applications for multiple platforms such as Windows, macOS, iOS, Android, and Linux. The presentation is hosted by David Espenschied, Pre-Sales Consultant at Embarcadero Germany, with Roland Appel, responsible for technical marketing, providing technical support. A key focus of the update is the set of enhancements for Delphi, including the introduction of the ternary operator—one of the most requested features—which enables more efficient assignment of variables based on conditions.
In addition, the language feature nameof has been added as an intrinsic function to retrieve code identifiers as strings. New compiler directives such as pushopt and popopt were introduced to save and restore compiler settings, and the operators is not and not in have been integrated as well. For C++ developers, RAD Studio 13 upgrades C++Builder with the new C-Link 20 compiler, which supports the C++23 standard and therefore provides a more modern toolchain.
The 64-bit IDE, previously labeled an “Initial Release,” is now fully functional, removes memory limitations, and is included by default during installation. Further improvements include optimizations to code completion and code tooling for both Delphi and C++. For Delphi, a transitional solution has been provided to re-enable the classic Code Insight while LSP optimizations are still pending. The Delphi Upgrade Advisor Assistant, a new tool for analyzing and improving project structures, is available via GetIt.
The previous refactoring tool has been replaced by MMX Code Explorer Delphi, which offers extended refactoring capabilities, source-file search, and live documentation support. Debugger quality has also been significantly improved—especially for the 64-bit IDE—with a focus on speed and stability, as well as optimization of the “Attach to Process” dialog. Welcome to another Embarcadero webinar on this sunny autumn day.
I would like to welcome all participants to this webinar on RAD Studio 13 Florence. My name is David Espenschied, and I’m a Pre-Sales Consultant at Embarcadero Germany. Also joining the webinar is Roland Appel, responsible for technical marketing. Good morning, Roland.
Good morning.
I won’t say anything further—only at the end.
All right, all right.
I will guide you through the new features of RAD Studio 13. We’ll first go through a few slides at a relaxed pace and then move on to the practical part to show some demos, and finally we’ll wrap up with a Q&A session.
Our agenda for this webinar includes: the new ternary operator in Delphi—one of the most requested features, now available with RAD Studio 13 / Delphi 13. Then we’ll cover the C-Link 20 upgrade for C++Builder. We’ll also discuss the IDE: the 64-bit IDE is now complete and offers the full functionality that the 32-bit IDE provides. We’ll get to that in detail shortly.
There are improvements related to Visual Assist and code tooling, and soon there will be a SmartCore AI component package that enables AI functionality in your own applications. There are also improvements in the VCL—title bar styles and new FMX controls—as well as enhancements in WebBroker and Web Stencils.
What is RAD Studio? RAD Studio is a software development IDE, and with Delphi you can build native applications for Windows, macOS, iOS, Android, and Linux—all from a single codebase. That is one of its strengths. And C++Builder can build Windows applications in 32-bit and 64-bit.
Development is done using visual designers, integrated AI/KI capabilities, integrated toolchains, comprehensive data access, and a component-based architecture. This means you get an accelerated development workflow by combining all these advantages.
Let’s start directly with what’s new in Delphi. As mentioned, there is a language extension: the ternary operator, implemented using if. This has the advantage that you can assign the result of a condition directly to a variable and perform a check much more efficiently than before. The previous IfThen construct is a function, whereas the ternary operator is built into the syntax, which provides several advantages. We’ll show a demo later and discuss it in detail.
Additional language features have been added: nameof as an intrinsic function, which lets you obtain the string name of code identifiers. There are also two new compiler directives, pushopt and popopt, which allow you to save and restore all compiler switches and configuration. This is comparable to C and its #pragma option push/pop. In addition, implicit Self parameter application was added in record class operators Initialize and Finalize.
More language features: there are new is not and not in operations. As you can see here, you can incorporate them neatly by restructuring your checks; the slide compares the new syntax to the old syntax. There is also a noreturn directive you can use for procedures/functions: normally, with a function, you would get compiler warning 1035 if no return value is defined. With noreturn, you can suppress this warning so the compiler no longer displays it. Additionally, there are constraints for generic types (interface, unmanaged, and non-zero), and the IFOPT directive has been extended to support longer directives so that you can use long directives accordingly.
Now to C++Builder. The new compiler C-Link 20 has been introduced. This update includes support for the new C++ standard C++23. The modern toolchain is set to C++23 by default, but of course developers can switch back to C++20 or C++17 depending on requirements.
Another improvement is the modern C++ toolchain itself, and Embarcadero continues to show commitment to ongoing improvement of C++Builder. We’ve also received feedback from MVPs and customers that C++Builder is significantly more stable and performs better than in previous versions. LLVM and C-Link were updated as well. There is improved runtime behavior for the Address Sanitizer under Windows 11. Versioned shared libraries were added. Compatibility with legacy versions of the previous C compilers (the old compiler version) was improved. This is an important aspect of C++Builder in RAD Studio.
The 64-bit IDE is now installed by default. It can no longer be added separately; it is installed in parallel with the 32-bit IDE. There is also a change regarding the Windows SDK. Previously, if the SDK was missing or an older version was installed, RAD Studio’s installer would automatically install it. Now, if it is not installed or an older version is present, you receive a message and a link (as shown in the screenshot) to download and install it yourself; the installer no longer handles it directly.
Internal version numbers (compiler versions) have been aligned to a common version, 37—so the compiler version is 37.0, and it will be incremented in future releases as usual. Previously, there were different versions depending on whether you looked at the RTL, FMX, PAServer, etc. These discrepancies have now been resolved by unifying the version to 37.0—also reflected in the installation folder names and the registry.
As mentioned, the 64-bit IDE is now complete and supports compilation for the Windows target platform, providing a full solution without the memory limitations of the 32-bit IDE. In Task Manager you can see that the full available RAM can be addressed. This release also includes code tooling for C++ with Visual Assist, plus support for COM objects, ActiveX, and type libraries. Some features are still not integrated, such as the “Surround” menu (which can insert braces or Try/Finally around selected code). At the same time, the IDE has been made more stable, and there are quality improvements for the debugger. UML modeling was removed from the 64-bit IDE, along with related features such as audits and metrics. Nevertheless, the overall functionality is now complete. It is no longer an “Initial Release” but the fully featured version.
C++ code tooling has been improved with a revised Visual Assist integration. It is enabled by default in the 64-bit IDE, and stability has also been improved in the 32-bit IDE. It now works better when switching between different projects, including project groups with different toolchains and configurations.
Delphi code tooling has also improved. However, there are still performance issues with the LSP. Unfortunately, the LSP optimizations did not make it into version 13 due to time constraints. A transitional solution has been provided: you can re-enable the classic Delphi Code Insight to restore code completion while LSP work continues. Embarcadero continues to work on completing and optimizing LSP so that it can be delivered to all customers as soon as possible.
A new tool is available via GetIt (we’ll take a quick look in the demo): the Delphi Upgrade Advisor Assistant. This tool scans the overall project structure and attempts to identify potential issues. For example, it can detect invalid paths or units included in the uses clause that are not needed and therefore increase compile time. The Upgrade Advisor Assistant scans and checks for such improvements to enhance the code tooling experience and reduce compilation time.
Refactoring: many customers were no longer satisfied with the previous refactoring tool. It has been removed from RAD Studio 13 and replaced by a much better alternative: MMX Code Explorer Delphi. Many already know it—it has existed for some time and is maintained by Uwe Raabe, one of our MVPs. You can download it directly from the MMX Delphi site or via GetIt. It integrates into both the 32-bit and 64-bit IDEs. It offers extensive refactoring options, full source navigation, a source indexer for fast search, and live documentation support. We’ll briefly cover it later in the practical section.
Embarcadero has also worked extensively on debugger quality. We optimized the debugger and added many quality improvements. The focus was on the 64-bit IDE and the debugging experience. Speed has been improved. In IDE Options you can enable code highlighting in debug windows. There are also numerous improvements in the C++ area—too many to go through one by one here, but the list shows that a lot has been done. The “Attach to Process” dialog was optimized: list and font improvements were made, flickering during process refresh (present in previous versions) has been corrected, and readability was improved. The font was aligned with the overall IDE. This is a meaningful optimization for a dialog that many users rely on.
The IDE also gained new search capabilities. You can now search in the Project Manager, Structure View, Message Log, and Event Log. This is implemented via a small edit field (visible in the screenshot in the top-right next to the gear icon). You can enter terms to filter and search your project structure in real time. The feature has been optimized for relatively large projects (files and more). It is configurable, and we’ll look at it later.
Messages now support highlighting as well—individual elements can be color-highlighted, and certain hints and warnings can be grouped by source file to improve overview.
There are also further IDE quality improvements, including for Smart Code Insight. A new connection test function is available in the options. We’ll demonstrate it: after entering access credentials for an AI provider (e.g., ChatGPT or Gemini), you can run a connection test to verify that everything works, or to detect issues such as an incorrect API key. Prompts and response processing have also been improved.
There is now an option to use the editor background color for editor tabs. Structure highlighting in the editor was improved and can use the IDE color style (enabled by default). Error messages can be copied from the structure area. The stack trace is now included by default in the exception dialog.
The Tools API—used by third-party vendors to integrate extensions into the RAD Studio IDE—was expanded in RAD Studio 13. It now includes methods for updating the Welcome Page, access to various events/notifications when the editor cursor moves or the user types (a keystroke event and a cursor-movement event).
RAD Studio 13 also offers a new resource compiler, “Resinator,” available from a GitHub repository. It is now the default in the build system settings, though you can still select the previous resource compilers (including the classic compiler included in the SDK). Resinator provides performance improvements.
GetIt has been redesigned. The catalog has been restructured, and package versioning has been added. Previously, if multiple versions of a package existed, each version was listed as a separate entry. With versioning, different versions are grouped under one entry. The “Install” button on the right is now multifunctional: you can view and install specific versions (including older versions, which previously wasn’t possible—you could only install the newest version). You can also uninstall, open the package installation folder in Windows Explorer (a common question: “Where is the package installed?”), and export the list of packages using getitcmd (a command-line tool) for reuse.
One important note: in the 64-bit IDE, GetIt is currently in read-only mode because Embarcadero is still transferring the old catalog to the new one. Installing packages for the 64-bit IDE is therefore still controlled via the 32-bit IDE. When you install a package in the 32-bit IDE, it checks whether a 64-bit variant exists and installs it in the 64-bit IDE as well. Once the catalog migration is complete and packages are updated accordingly, this should normalize.
We also developed an AI-based chatbot during RAD Studio 13 development: the RAD AI Companion. Traditional documentation remains available (integrated help and the DocWiki), but the new chatbot is tailored specifically to RAD Studio. It is trained on the DocWiki knowledge base, and also includes videos and books as sources. You can access it via the website shown and ask questions in German or English. As with any AI, the accuracy of the question largely determines the accuracy of the answer: the more precise you ask, the more precise the answer tends to be.
Soon, a GetIt package will be available (currently in final refinement): the SmartCore AI component package. It provides a foundation to embed AI functionality in your own applications. You get an AI connection component that communicates with the chosen AI provider and allows you to send prompts and route responses back into your app—text requests, image requests, and structured data requests (e.g., in the form of a TDataSet). The driver architecture is based on a single AI connection component with multiple drivers (e.g., OpenAI, Gemini, Claude, and others), and more drivers will be added over time. This provides one backend-independent component and a flexible driver model. There is also a connection wizard for configuration, and the ability to add new drivers.
The frontend uses the connection component and various non-visual request components: one for text, one for images, and one for structured data that can return a table via TDataSet. You can also send/receive JSON for structured data, make audio or streaming requests (upload audio and receive text or audio back), and integrate results into standard UI controls.
Target platform support remains as follows: for Windows (Delphi and C++Builder) Windows 11 and Windows 10 are supported, plus Windows Server 2022 and the new Windows Server 2025. Targets are 32-bit and 64-bit. The IDE requires 64-bit Windows. For Delphi, additional platforms include iOS 18, macOS 14 or 15 on Intel and ARM, Android 14/15/16 (API Level 35), and Linux distributions such as Ubuntu 22 and 24, Red Hat Enterprise Linux, and Windows WSL2.
Mobile platform integration has been updated: Android remains at API Level 35. For iOS, APIs were improved through cleanups, and dozens of missing functions were added in core and various kits to improve overall smoothness. For Windows platform integration, Windows APIs were cleaned up (including Windows RT APIs), classic WinAPI and WinMD projection were refreshed, and the embedded browser was updated for the WebView control.
The Runtime Library (RTL) was optimized: JSON processing was improved; a revised TJsonNumber class remains backward-compatible but has been improved; ReadAsUnsignedInt64 was added; and many smaller RTL fixes were made. Web client libraries were improved: HTTP protocol support was added for the HTTP client, and SOAP clients gained a new asynchronous version of HTTP request execution. Database RTL improvements include enhanced support for unsigned BigInt and more flexible drag-and-drop of fields onto forms, among other updates.
FireDAC drivers were updated: OAuth authentication support, parallel backup operations in the Firebird backup class for Firebird 5 and above, improved support for PostgreSQL array types, and core FireDAC improvements such as enabling loading of standard JSON into TFDMemTable.
InterBase 15 has been announced. RAD Studio 13 still ships with InterBase 2020, but InterBase 15 is imminent. The versioning has changed: instead of using the year as a marketing version (InterBase 2020), Embarcadero is now using the internal version number. InterBase 2020 internally was version 14; therefore the new version is 15. More information will follow once it is released.
There are multiple VCL optimizations: new VCL styles for title bar components (as shown in the animation), and the ability to place controls in the title bar, such as buttons, checkboxes, or radio buttons. The CaptionButtonItem element gained a ShowHint property. The TActionMainMenuBar now supports image scrolling: when there are too many menu items to fit on screen, scrolling is activated automatically once the vertical height exceeds the screen height (also for submenus). There are improvements to the Forms TabBar including transparency, enhanced OnGetTabCaption, and a new middle-mouse-button event. MDI (Multiple Document Interface) support was improved. Microsoft UI Automation interfaces were integrated. There are many additional improvements (including a modernized toggle switch, enhancements to TWebBrowser, and more).
FireMonkey was also improved: a new Display Link service provides smoother animations via platform-specific APIs; a new TMaskEdit component adds input masking in the VCL style; improvements to TPresentedScrollBox include control of scroll animation, bounce behavior, and touch integration; spell-checking improvements; layout improvements (centered alignment options); TApplicationEvents gained new event-handling capabilities; and autocomplete in TAutoComplete / TComboEdit was optimized with integrated text completion. GPU-accelerated bitmap copying was improved for significantly faster performance. FireMonkey Linux integration was improved by simplifying Linux UI usage, available to Enterprise customers via a GetIt package. Skia4Delphi was updated to the latest version. The Windows WebBrowser component was updated, including IME UI symbol support. There are also various FMX enhancements such as a new OnCheckChains event for TListBoxItem, a TTrackBar.Reverse property, improved mouse-wheel scrolling, stylable menu item height, fullscreen support for iOS, edge-to-edge support for Android, and the ability to disable “jumping” in iOS list views.
WebBroker—Embarcadero’s framework for building web server extensions—has been expanded significantly, described as one of the biggest expansions since Delphi 6. It now includes integrated sessions and session management, FastCGI support, Apache configuration support, and integrated logging (via Application.Log). Many enhancements were added around session management, including a new TWebSessionManager class and related properties. There are ready-to-use authenticators, including Basic HTTP authentication and HTML-based authentication, and the non-visual configuration component TWebSessionManager. TWebAuthorizer offers role-based access control via authorization zones. A demo is prepared for this as well.
Web Stencils has been enhanced in RAD Studio 13. It extends existing technologies such as WebBroker, DataSnap, and RAD Server with a server-side template engine to build efficient, data-driven websites. It is now more powerful in version 13 and provides a strong foundation for common functions such as sessions, logins, and permission management. New features include session data support, additional variables outside of the class/data model, a new switch statement, direct access to dataset properties, extra header support, and additional properties for the page keyword.
RAD Server—Embarcadero’s solution for providing APIs to client applications—now has more flexible Swagger-based API documentation. Multi-tenancy received an additional option for tenant-specific configuration. A new simple and direct method for implementing API versioning has been introduced.
Finally, there were extensive report fixes and feature implementations in RAD Studio 13: 318 customer reports were fixed and 108 customer feature requests were implemented. Overall, 734 customer reports were addressed across the old and new portal systems. There are still open reports, and work continues.
RAD Studio 13 became available on September 10 of this year and has been available since then. It can be downloaded as a trial or full version, including via my.embarcadero.com.
Now I’d like to jump into the practical part directly in the IDE…
[The remainder continues with live demo narration: Smart Code Insight connection test, IDE search fields, GetIt package version selection and installation, ternary operator demo code, Web Stencils demo with a local server and authentication/session features, MMX Code Explorer refactoring example (rename/intelli-replace, surround-with, navigation), Delphi Upgrade Advisor scan results, RAD AI Companion demo query (“How do I determine the Windows version with Delphi?”), and the Q&A section.]
If you want, I can also deliver a “clean” version that removes filler words and side comments and reads like written webinar notes, or I can keep it strictly verbatim in style (including repetitions and asides).
source:



