12 times 12 new features in Delphi 12
RAD Studio 12 includes some great improvements for C++Builder and the launch webinar and other online content highlights it. However, it is also a fantastic release for Delphi developers. I compiled 12 lists with 12 improvements each for Delphi 12. So this is not a list of 12 improvements for Delphi 12. It's a list of 12x12=144 improvements, plus half a dozen for native Windows bringing the total to a whopping 150 -- excluding all the existing improvements for C++Builder, as here I want to underline the Delphi side (but most of the features below are in fact for both languages).
- The first blog post had 3 x 12 VCL Enhancements in Delphi 12, as you can read at https://blogs.embarcadero.com/3-x-12-vcl-enhancements-in-delphi-12/.
- The second blog post focused on FireMonkey and the Android platform support, as you can see at https://blogs.embarcadero.com/3-x-12-firemonkey-and-android-enhancements-in-delphi-12/.
- The third installment had three lists focused on three related areas, Delphi Runtime Library (RTL), database access, and Internet access, as you can see at https://blogs.embarcadero.com/3-x-12-rtl-data-and-internet-enhancements-in-delphi-12/
- This last blog post of the series has 12 entries each for the IDE, the installer, and the Delphi language. Plus a bonus 6 on Windows API integration, bringing the overall total to 150.
In the IDE
-
- The Find in Files dialog now has a new "Subdirectory exclude mask" option
- Syntax highlighting has been added to Error Insight hints, Navigation toolbar, Call Stack
- The Structure view syntax highlights methods and types and has syntax highlighting added to the Error Insight messages
- The Options - IDE - Saving and Recovering page has a new checkbox to save the editor state
- The Markdown window now changes colors when the IDE theme is changed
- The Welcome Page now supports smooth mouse wheel scrolling
- GDI bitmap counts is lower through the IDE as images are made dormant if not used for some time
- Code templates and language keywords can now be displayed in Delphi LSP-based code completion
- Code completion now adds array braces [ ] for array types
- All Platforms Single Icon Wizard
- PAServer messages, including hints, will be shown in the IDE Messages pane
- New ToolsAPI, IOTARawEditReader interface
Below: The All Platforms Single Icon Wizard
In GetIt and the Installer
-
- The Platform Manager has been renamed to Feature Manager
- The Feature Manager has a completely new UI, build with regular VCL controls and styles
- The Feature Manager offers all options in a single page
- The Feature Manager separates the languages and the platforms you want to install
- The Feature Manager includes preset configurations for common scenarios like Desktop or Mobile
- The Feature Manager has a new “Errors” button that shows installation errors directly and has a direct link to the error log file
- The GetItCmd command line tool is now logging to the GetItInstall.log file
- The GetIt package manager has the option to load multiple local GetIt packages with a single operation
- The integrated version of DUnitX has been updated
- The integrated version of Indy has been updated
- The long deprecated VCL translations tools has been removed from the core product installation
- The fairly old Modeling support has become an optional feature in the Feature Manager
Below: The new Feature Manager window
And, Finally, in the Delphi language
-
- Long literal string With more than 255 characters
- Multiline string literals
- TEXTBLOCK directive to specify the line breaks format of multi line strings
- NativeInt, a type mapped to Integer or Int64 depending on the platform, is now a weak type alias
- Improved warnings in generic classes
- New LLVM symbol defined in all LLVM-based Delphi compilers
- Option to export the units uses graph in a GraphViz file (graphviz)
- Ability to exclude family of units form the GraphViz file (graphviz-exclude)
- Support for NaN (not a number) comparisons as required by IEEE
- Optimized generated code for div operations when the divisor is a constant
- Two new functions to the System unit, GetCompilerVersion and GetRTLVersion
- Floating-Point Exceptions are now disabled by default on all Platform
Below: Multiline Delphi string literals in the IDE
Bonus Section: In Windows Platform
-
- New WinAPI definition based on WinMD Microsoft metadata (311 header files with 41 MB of Delphi code)
- WinRT APIs and WebView 2 control API refreshed to the most recent version
- Edge browser: UserAgent is available in ICoreWebView2Settings; ICoreWebView2Profile2 contains methods ClearBrowsingData, ClearBrowsingDataAll, and ClearBrowsingDataInTimeRange; TEdgeBrowser OnDownloadStarting event, NavigateWithWebResourceRequest method, Print and ShowPrintUI methods
- New Windows 11 Styles
- TForm class EnableImmersiveDarkMode method and RoundedCorners property for Windows 11
- Title Bar support for Windows 11 snap layouts (see image below)
Snap Layout for TitleBar work also for the IDE