10.4 Sydney - Release 2
Updated RAD Studio 10.4.2 Sydney release available (February 24th, 2021).
RAD Studio 10.4 Sydney - Release 2 (also known as 10.4.2) is available for installation. 10.4.2 builds on the feature set of 10.4 and 10.4.1, enhancing existing features throughout the product, and adding new capabilities. Delphi 10.4.2, C++Builder 10.4.2, and RAD Studio 10.4.2 are available to download to any active Update Subscription customer. RAD Studio 10.4.2 includes additional features (as detailed below) as well as a significant focus on quality improvements. RAD Studio 10.4.2 includes all patch fixes from 10.4.1.
- 1 Installing 10.4.2
- 2 Key Enhancements by product area in 10.4.2
- 3 New Developer Productivity and User Experience Features for Faster Onboarding and Application Development
- 4 Expanded FireMonkey Platforms Support
- 5 Key New Delphi Features
- 6 Key C++ Builder Features
- 7 Additional Enhancements
If you have already installed 10.4 Sydney or 10.4 Sydney - Release 1, installing 10.4 Sydney - Release 2 requires a full uninstall and reinstall. As part of the uninstall process, you will see an option for preserving your settings. This is enabled by default. Separately, you can also preserve settings with the enhanced Settings Migration Tool.
Key Enhancements by product area in 10.4.2
Best-In-Class Windows Application Support
RAD Studio provides the best library for native Windows application development, the Visual Component Library. 10.4.2 builds on the new VCL features and components introduced in 10.4, 10.4.1, and introduces new VCL components, enhanced Windows store support, and more.
New VCL Native Windows Controls
New VCL TControlList Control
RAD Studio 10.4.2 introduces a new flexible and virtualized list control. This new VCL control, designed as a high-performance control for very long lists, provides a modern look and feel, complete with custom UI configuration options.
Similar to the ListView Item Designer for FireMonkey, the new VCL TControlList lets you design the layout of a listview item which is then replicated (virtually) for each of the items in your list. TControlList offers both single-column and multi-column layouts that developers can customize to their liking, and being totally virtual, the list can handle thousands and even millions of items, offering extremely fast scrolling. Besides calculating and displaying only the items that fit on the screen, the list caches the content of the items using in-memory bitmaps. This new control supports High-DPI options and VCL Styles and is fully LiveBindings enabled.
The control includes a wizard that can help developers get started with a number of predefined layouts, like the one below. Also included is a new TControlListButton component, designed to be used with TControlList, that consists of 3 styles - push button, tool button, and link - and is analogous to a TSpeedButton.
For more information see TControlList
New VCL TNumberBox Control
The new VCL TNumberBox control is a modern-looking numeric input control, similar to the Windows platform WinUI NumberBox control. The control supports the input of integer numbers, floating point numbers with a given set of decimal digits and proper formatting, and currency values.
While some third party controls with similar capabilities exist, the VCL only had a much more limited SpinEdit control, with an older UI and limited to integers.
The new control has a modern UI, supports VCL styling, is HighDPI-enabled, and has many additional properties to adjust visual style and behavior. The control offers extensive mouse and keyboard input options, all configurable, and it allows expressions input, so a user can type an expression (say 43*3) and see the result (129 in this case) displayed in the edit.
For more information see TNumberBox Control
Windows Store Packaging Made Easy
The RAD Studio 10.4.2 release introduces support for Microsoft’s newly recommended Windows application packaging format, MSIX, for Microsoft Store and Enterprise deployment.
The IDE integrated MSIX support in 10.4.2 replaces the existing APPX support, while offering similar project configuration options to make the transition process easy. MSIX support incorporates the technology previously known as Desktop Bridge, and it’s one of the pillars of Microsoft’s Project Reunion, which is redefining foundations of the Windows programming API model.
Delphi and C++Builder Windows developers, using either VCL or FireMonkey as their application framework of choice, can take advantage of this new feature. MSIX is the way forward to deploy Windows applications to Windows 10 devices via the Microsoft Store.
For more information see Windows MSIX
Konopka Components Improved Styles Support
Konopka Signature VCL Controls (KSVC) is a popular suite of over 200 Windows UI controls and designers for your Delphi and C++ Builder VCL applications. It is available as a free add-on for Update Subscription customers in GetIt. The VCL Styles architecture was significantly extended in 10.4 to support High-DPI graphics and 4K monitors. 10.4.2 includes numerous enhancements and updates to the KSVC library for better integration with VCL styles.
The new version of KSVC is available as a free add-on for update subscription customers in the GetIt Package Manager from the 10.4.2 IDE.
New TEdgeBrowser Extensions
The TEdgeBrowser VCL component introduced in 10.4 (a wrapper around the Windows 10 Chromium-based Edge WebView2 control) has been updated with support for the GA version of Microsoft's WebView2 control and its SDK. Besides better compatibility, the component now offers enhanced support for files cache management and the use of custom WebView2 versions.
See TEdgeBrowser for more info
New Developer Productivity and User Experience Features for Faster Onboarding and Application Development
RAD Studio 10.4.2 includes new tooling to help both new and seasoned application developers build stunning apps quickly, enhanced migration tooling for fast product version upgrades, and a new silent installer for automating the installation of RAD Studio.
As part of an effort to simplify the onboarding process for new developers and highlight new GetIt packages and additional features that can be installed into RAD Studio over time, we have added a new section with featured GetIt packages to the IDE Welcome page. GetIt packages can be quickly installed into the IDE and sample projects are automatically opened after the package has been installed, providing a quick starting point for new and experienced developers alike.
IDE App Wizards - Low Code App Wizards™️ 
As part of Embarcadero’s initiative of opening up the IDE more with expanded ToolsAPI support targeted for the future, 10.4.2 includes new application wizards for FireMonkey. These wizards, installable via GetIt, allow RAD Studio developers to quickly build an application from scratch, by specifying a number of parameters through a wizard interface. This includes the ability to select from numerous pre-built forms, representative of the key screens found in most applications today, define basic form interaction logic, select application theming, connect to numerous databases, and more, all without writing a single line of code, but fully customizable by writing Delphi or C++ code. By providing ready-to-use wizards, teams can greatly reduce the onboarding time for new RAD Studio developers on their team, and seasoned VCL & FMX developers can leverage them for a more efficient way to create stunning user interfaces that adhere to today's UI guidelines.
- Expected to be delivered in GetIt shortly after 10.4.2 release.
The RAD Studio IDE provides many developer productivity-focused enhancements in 10.4.2. As part of the enhancements, we have focused on IDE responsiveness. This includes a new progress dialog that shows what the IDE is doing during a lengthy operation, such as opening a large project group. We have updated the library path management and added the ability to convert paths to and from absolute paths to using environment variables in the path, making it easier to configure a project or the IDE in an installation- or source code location-agnostic manner. This is also useful for those managing a complex layout for large applications with many third-party components, as well as for those configuring projects that will be upgraded to a newer IDE version in the future.
In 10.4.2 developers can also work in the form designer while at the same time editing the underlying code of the same unit in a separate edit window, possibly displayed on a secondary monitor.
There is also a new style called Mountain Mist, echoing classic IDE colors.
There are also improvements when accessing RAD Studio over Remote Desktop, useful for those working from home; improvements to adding platforms to projects; and the ability to detect a unit with mixed line endings and to canonicalize those to CRLF.
Finally, you can now press F1 in the Messages pane to open help for a compiler message or compiler error.
Code Insight (LSP) improvements
RAD Studio Language Server Protocol (LSP) support, introduced in 10.4 for Delphi and in the 10.3.x versions for C++, has been significantly expanded in this release, offering better, faster, and more reliable Code Insight, including Code Completion, Parameters Completion, symbol information, and much more.
Compared to the previous versions, in 10.4.2 LSP adds many new features for Error Insight for Delphi: the editor now shows colored underlines for hints and warnings as well as errors, meaning you can see potential important issues in the code editor; a summary of the error, warning and hint status for the current file in the editor status bar; indicators for errors, warnings, and hints in the editor gutter making it easier to spot issues when scrolling your code; and several new ways to highlight the code for an issue, making it easier to see the code in question.
There are also significant improvements to code completion in the unit clause; the Projects view shows the current status of the LSP server, allowing you to see when it is parsing and when it is ready; improvements to parameter completion including showing XMLDoc; improvements to ctrl-click navigation’s understanding of the code, including being able to ctrl-click on the ‘inherited’ keyword, allowing much more robust and featureful navigation; and some other editor features, such as ctrl-shift-up/down to move between method declaration and implementation, have had their implementation moved to the LSP server. There are also improvements for generic methods and classes, to tooltip insight, better support for using Code Insight with packages or in code that uses packages, and more.
For C++, code completion interaction has been significantly revised. Several important quality improvements have been implemented, addressing issues like international characters, indexing, and more, providing robust code completion in well-configured C++ projects.
Enhanced Migration Tool
The Migration Tool that helps copy the IDE configuration across versions, updates, and installation has been significantly updated.
Once you select the type of migration (from version to version, to file, etc.) the tool provides an extended list of settings and 3 preset configurations to choose from. It also allows developers to include additional configuration files such as FireDAC, Desktop, Platforms, and Formatters configuration files, significantly speeding up the process of updating from version to version.
RAD Studio 10.4.2 supports silent, automated installations of Delphi, C++Builder and RAD Studio with no UI interaction, providing a fast and efficient installation option for individual developers, large development team deployments and IT professionals.
Silent installation can be activated by passing additional, optional command line parameters to the Setup program. The silent installer allows developers to install the core IDE and any of the platforms and features available for their edition. For more information see Silent Installer
Expanded FireMonkey Platforms Support
RAD Studio 10.4.2 includes support for the latest Apple OS and Android OS versions (platform support varies by product).
Enhanced Apple OS Platforms Support
iOS 14 Support (Delphi and C++)
RAD Studio 10.4.2 provides support for building iOS 14 App Store ready applications, targeting the iOS 14 SDK, and debugging on iOS 14 devices. Developers can also target ad hoc distribution for deployment within their enterprise.
macOS 11 Intel Support (Delphi)
Delphi developers can target macOS 11 Big Sur with Intel-based applications using the FireMonkey framework. Also included is support for a new 2x image in the default ICNS file. Delphi developers can build macOS 64-bit applications for the macOS App Store, or for distributing their macOS apps locally or through their own website.
Android 11 Support (Delphi)
Delphi 10.4.2 includes support for deploying and debugging on version 11 of Android and significant improvements for deployment to the App Bundle format, required by Google's Play Store along with the 64-bit app support.
Key New Delphi Features
Compiler Performance Improvements
We have significantly enhanced the Delphi Compiler performance, by implementing over 35 different compiler optimizations. While the effect on the compilation time varies depending on the customer code base, we have seen reports indicating a very large improvement, with compilation time reduced to a fraction of what was in previous 10.4 releases. This is especially beneficial for customers with large applications.
Code Insight Enhancements
Delphi’s new CodeInsight support based on the LSP technology has been largely expanded in 10.4.2 as covered in the previous section on developer productivity enhancements.
Key C++ Builder Features
C++Builder’s code completion has been significantly revised to allow robust code completion for a well-configured project. In addition, a new approach to handling debug information when linking drastically reduces both the memory usage required for the 64-bit Windows linker, as well as the output size of your application. Finally, exception handling is improved, and the STL updated, providing excellent application behaviour.
C++Builder 10.4.2 introduces a significant improvement addressing memory usage in the Win64 linker.
The C++ Win64 toolchain uses the ELF64 object file format, and Dwarf v4 debug file format. Debug information can often be very large, and is linked in to the resulting binary by the linker, often causing memory strain for ilink64. In 10.4.2, C++Builder includes a new technology to greatly reduce the amount of data the linker needs to process. It does this by splitting the debug information to separate files; the linker then only links executable code and a small amount of other information. This is known as ‘split Dwarf’. The debug information is placed in .dwo files (dwarf object.)
Win32 Instruction Set
Clang-based bcc32c/x now defaults to 'pentium2' instead of 'i386' as the default target CPU. This gives some better code optimisations, but the main benefit is reduced register spilling in debug mode.
Exception Handling and RTL
10.4.2 sees a large overhaul of the exception handling system. Both within a module and cross-module (such as throwing an exception from a DLL to an EXE), C++ language exceptions, SEH, and OS exceptions have been overhauled. This should assist you throughout your applications, as well as in unusual cases like some Windows APIs that raise exceptions.
The RTL also includes the latest version of the Dinkumware STL.
Several more key open-source C++ libraries will be made available in GetIt. Not only is this beneficial for you in making those powerful libraries easy to integrate in your own applications, but it demonstrates the compatibility modern versions of C++Builder bring to common C++ code.
We have also put a significant effort into enhancing and improving the quality of several product areas, including in particular:
- The integration with SOAP web services many business applications need to interact with, improving the WSDL import tool and the SOAP client invocations.
- The Parallel Programming Library, which is part of the RAD Studio RTL, and offers a modern style for writing multi-threaded applications that can advantage of modern multi-core CPUs.
- Display of information for generic collection objects in the debugger, with the introduction of a new specific debug visualizer.
- Database and remote data access technologies have also seen a few improvements for FireDAC InterBase, SQLite, PostgresSQL, and Oracle integrated drivers, the REST Client Library, AWS, and Azure support.
As part of our continued focus on quality, performance, and stability we also fixed a large number of internally found issues and over 600 customer issues reported by customers in Quality Portal.