We are very excited to announce the release of Delphi, C++Builder and RAD Studio 10.4 Sydney. RAD Studio 10.4 delivers significant improvements for Windows 10 VCL desktop development, Delphi multi-device development, and developer productivity that optimize application performance while reducing time developers spend building and maintaining code.
The installers for RAD Studio 10.4 Sydney, Delphi 10.4 Sydney and C++Builder 10.4 Sydney are available for download on the following registered users download page: my.embarcadero.com
Table of Contents
New Delphi Features
- Major Delphi Code Insight improvements
- The largest and best improvement to Delphi’s code tooling in many years, RAD Studio 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.
- New Language Feature for 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.
New C++Builder Features
- 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. These libraries can be downloaded via the GetIt Package Manager, including libSIMDpp, NemaTode, SDL and others. Also included is a download for Boost 1.70.
- 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
New VCL Windows Features
- 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
- 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 Per Control Styling
- 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.
- New VCL Component: Edge Browser Control
- 10.4 includes a new VCL web browser component, TEdgeBrowser, that uses Microsoft’s new Edge WebView2 based on Chromium. This offers a much more modern HTML engine and a secure one, compared to the old TWebBrowser based on Internet Explorer.
- Moreover, the classic TWebBrowser component has been extended, allowing browser controls in an existing application to use either the existing Internet Explorer or Edge browsers for display, depending which browser is available on the system.
- New VCL Component: TTitleBarPanel and Custom Title Bars
- The new TTitleBarPanel control and TForm.CustomTitleBar property allow you to customize a VCL form’s native Windows title bar. You can place VCL controls on the Windows title bar, control the default painting of elements such as the window icon and caption, add new custom system buttons near the Minimize, Maximise and Close buttons, or even custom paint the title bar entirely. With the new title bar support in 10.4, you can now build modern enhanced title bars similar to the most popular word processing and web browser applications today.
- New VCL Component: Image Component with Multi-Resolution Support
- There is a new TVirtualImage component that supports multiple resolutions and DPI scaling, allowing you to gain high-quality image scaling and display by replacing the classic TImage component.
- Windows API Updates
- We enhanced many API declarations and added additional ones, to further improve the great platform integration RAD Studio offers.
Key FireMonkey Platform Enhancements
- Metal Driver GPU Support for macOS and iOS: On the macOS platform (Delphi), you can now build applications against the Metal API, rather than the old Quartz API and OpenGL (deprecated by Apple). FireMonkey Metal support offers a smooth migration to future requirements and better performance for screen rendering. In 10.4, we also added support for the Metal API on iOS (Delphi and C++Builder).
- 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 uses AVFoundation
- Developers using the FireMonkey framework can target the latest versions of the supported operating systems
Key Run-Time Library Enhancements
- Enhanced Parallel Programming Library Support: The Parallel Programming Library (PPL) gives your applications the ability to have tasks running in parallel in modern multi-core CPUs. In 10.4, we’ve made numerous performance and stability enhancements to our PPL library.
- In 10.4, we have made some general enhancements to the FireDAC database access library and also updated the drivers for FireBird, PostgreSQL and SQLite. For the SQLite embedded database, we now offer the ability to choose between static or dynamic linking.
- We have expanded our HTTP and REST Client libraries with additional HTTPS features and also expanded our support for Amazon AWS services.
- LiveBindings Performance and Features Enhancements
- 10.4, we’ve made many enhancements to the Visual LiveBindings architecture and implementation for both VCL and FireMonkey applications, with a particular focus on performance. As a result, some of the LiveBindings operations are an order of magnitude faster.
- Additional improvements include the ability for VCL and FMX controls bound to a TDataSet to automatically adapt to associated TField properties, like DisplayWidth, Alignment, and EditMask.
Key IDE Enhancements
- 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.
- The code editor has several productivity improvements, including new settings such as file codepage and font size on the editor status bar.
- The IDE and key dialogs use the new TCustomTitleBar control to implement search and settings on the title bar, enabling native look and feel and Windows DWM behaviour.
RAD Studio 10.4 is also one of our strongest quality releases to date, with over 1,000 quality and performance enhancements. This includes fixes to over 700 customer reported issues in Quality Portal.
Top quality focus areas include:
- Visual Live Bindings: better performance and new features
- AppTethering quality
- Parallel Programming Library quality and improvements
- C++ toolchain (compiler, linker, debuggers)
- RTL performance and new small features (buffering, FreeAndNil)
- Updated FireDAC drivers (SQLite and more)
- HTTP and REST and Cloud and SOAP clients improvements
Other useful links:
- YouTube Video and Playlist
- Docwiki: http://docwiki.embarcadero.com/RADStudio/Sydney/en/
- Feature matrix: https://www.embarcadero.com/docs/rad-studio-feature-matrix.pdf
- Looking to download a RAD Studio 10.4 Trial? Visit https://www.embarcadero.com/products/rad-studio/start-for-free