What's New In RAD Studio 10.4
RAD Studio 10.4 delivers significantly enhanced high-performance native Windows support, increased productivity with blazing fast code completion, faster code with managed records and enhanced parallel tasks on modern multi-core CPUs, over 1000 quality and performance enhancements, and much much more.
10.4 Release 1 is Now Available
We are pleased to announce that RAD Studio 10.4.1 Sydney is now available. This release adds significant new and enhanced Windows capabilities throughout the product in addition to major productivity and performance enhancements across supported platforms. Delphi 10.4.1, C++Builder 10.4.1 and RAD Studio 10.4.1 are available to download by any active Update Subscription customer.
This new release also includes key fixes and notable enhancements. To learn more about 10.4.1, click here.
RAD Studio 10.4 Overview
Visually Stunning UI Elements Through VCL Styling & High DPI
New Native Windows VCL Components And Upgraded Windows APIs
Enhanced Cross-PlatForm Support
Faster Code Through RTL Enhancements
What's New in Delphi
Improved code completion for Object Pascal, new custom managed records, unified memory management, RTL speed improvements, toolchain performance and quality improvements, and more.
What's New in C++Builder
Expanded C++ libraries support, a new debugger for Windows 64-bit, toolchain performance and quality improvements, and more.
Increased Productivity Through IDE Enhancements
Salient Features
Major Delphi Code Insight improvements
The largest and best improvement to Delphi’s code tooling in many years, 10.4 provides Code Insight using a Delphi implementation of the Language Server Protocol (LSP). LSP is a technique for calculating results for code completion, navigation or similar in a separate process. This means that the IDE will never block while completing and Code Insight will provide accurate results. 10.4 provides a much enhanced developer productivity experience when working with large projects with millions of lines of code.
Delphi Custom Managed Records
A key language addition to the Delphi language, the Delphi record type now supports custom initialization, finalization, and copy operations. Developers now have the ability to customize how records get created, copied, and destroyed, by writing the code to be executed at the various steps.
This adds additional power to records in Delphi, a construct used to achieve better efficiency compared to classes.
Unified Memory Management
Delphi memory management is now unified across all supported platforms – mobile, desktop and server – using the classic implementation of object memory management. Compared to Automatic Reference Counting (ARC), this offers better compatibility with existing code and simpler coding for components, libraries and end user applications. The ARC model remains for string management and interface type references for all platforms. For C++, this change means that the creation and deletion of Delphi-style classes in C++ follows normal memory management just like any heap-allocated C++ class, significantly reducing complexity.
Expanded C++ libraries support
In 10.4, we’ve ported numerous popular C++ libraries to C++Builder, providing optimized support for use within C++Builder.
This includes libraries such as ZeroMQ, SDL2, SOCI, libSIMDpp, and Nematode, as well as others already supported such as Eigen, available for download through the GetIt Package Manager.
Win 64-Debugging and Linker for C++
10.4 introduces a new debugger for Windows 64-bit for C++. Based on LLDB, this debugger introduces significant stability improvements when debugging 64-bit applications, as well as a key new feature assisting evaluating and inspecting types like C++ and Delphi strings plus STL collections including std::vector and std::map, and more. In addition, the debug information generated for an app uses a different debug format. The end result is a more stable, featureful debugging experience, and much more powerful inspection and evaluation at debug-time.
Toolchain performance and quality improvements
- A large number of STL improvements from Dinkumware
- Several key RTL methods and areas improved, based on work done to improve compatibility with common C++ libraries
- Several improvements to CMake support
- A large number of quality and stability improvements
- Windows API Updates – We enhanced many API declarations and added additional ones, to further improve the powerful Windows platform integration.
- General enhancements to the FireDAC database access library and also updated the drivers for FireBird, PostgreSQL and SQLite. Choose SQLite static or dynamic linking.
VCL Style Changes for High DPI
In 10.4, the VCL Styles architecture has been significantly extended to support High DPI and 4K monitors. All UI controls on the VCL form are now automatically scaled for the proper resolution of the monitor the form is displayed on. The style API has been fully revised to support high DPI styles.
Each UI element can be selected from a library of multi-scale versions and scaled to any DPI, resulting in crisp UI elements on all monitors.
New High DPI Styles & VCL Per Control Styling
We have updated a large number of our built-in and premium VCL styles to provide support for the new High-DPI style mode, letting you design visually stunning applications for any monitor.
VCL developers can now use multiple VCL styles in different forms within a single application or even different visual controls that are on the same form. This also includes support for styling any element using the default platform theme. Beside allowing more flexibility in styling, this also enables you to use third-party unstyled controls within a styled VCL application.
Cross-Platform Enhancements
- Added support for the Metal API on macOS and iOS
- In addition to supporting the latest iOS SDK, developers using RAD Studio 10.4 can also address Apple’s new launch screen storyboard requirement through built-in IDE support.
- This release includes a new FMX implementation for the styled TMemo component on the Windows platform, offering better support for IME and additional enhancements.
- Enterprise and Architect Edition customers can take advantage of FMXLinux integration for building Linux GUI applications.
- The TWebBrowser control for iOS is now implemented using the WKWebView API
- The macOS implementation of Media Player control now used AVFoundation
GetIt Package Manager Enhancements
The GetIt Package Manager in the IDE includes significant enhancements in 10.4.
This includes displaying release dates for each package with the ability to sort them by release date; new filtering options for installed packages, exclusive content available for update subscription customers, packages for which updates are available; and more.
Unified Installer for Online & Offline installations
In 10.4, we’re introducing a unified installer using our GetIt installer technology. This provides a single installer that supports both online (internet connected) installations and offline installations (via an ISO).
Now both online and offline installations allow you to select an initial set of RAD Studio features to install, such as support for specific combinations of programming languages and target platforms, language support, or help resources, and add or remove them at any time.
Design it, Build it, Run it!
The RAD Studio IDE supports you through the full development lifecycle to deliver a single source codebase that you simply recompile and redeploy.