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).

In the IDE

    1. The Find in Files dialog now has a new "Subdirectory exclude mask" option 
    2. Syntax highlighting has been added to Error Insight hints, Navigation toolbar, Call Stack   
    3. The Structure view syntax highlights methods and types and has syntax highlighting added to the Error Insight messages
    4. The Options - IDE - Saving and Recovering page has a new checkbox to save the editor state
    5. The Markdown window now changes colors when the IDE theme is changed
    6. The Welcome Page now supports smooth mouse wheel scrolling
    7. GDI bitmap counts is lower through the IDE as images are made dormant if not used for some time
    8. Code templates and language keywords can now be displayed in Delphi LSP-based code completion
    9. Code completion now adds array braces [ ] for array types
    10. All Platforms Single Icon Wizard
    11. PAServer messages, including hints, will be shown in the IDE Messages pane 
    12. New ToolsAPI, IOTARawEditReader interface

      Below: The All Platforms Single Icon Wizard
      144 singleicon

In GetIt and the Installer

    1. The Platform Manager has been renamed to Feature Manager 
    2. The Feature Manager has a completely new UI, build with regular VCL controls and styles
    3. The Feature Manager offers all options in a single page
    4. The Feature Manager separates the languages and the platforms you want to install 
    5. The Feature Manager includes preset configurations for common scenarios like Desktop or Mobile
    6. The Feature Manager has a new “Errors” button that shows installation errors directly and has a direct link to the error log file
    7. The GetItCmd command line tool is now logging to the GetItInstall.log file
    8. The GetIt package manager has the option to load multiple local GetIt packages with a single operation
    9. The integrated version of DUnitX has been updated
    10. The integrated version of Indy has been updated 
    11. The long deprecated VCL translations tools has been removed from the core product installation
    12. The fairly old Modeling support has become an optional feature in the Feature Manager

      Below: The new Feature Manager window
      144 managefeatures

And, Finally, in the Delphi language

    1. Long literal string With more than 255 characters
    2. Multiline string literals
    3. TEXTBLOCK directive to specify the line breaks format of multi line strings
    4. NativeInt, a type mapped to Integer or Int64 depending on the platform, is now a weak type alias
    5. Improved warnings in generic classes 
    6. New LLVM symbol defined in all LLVM-based Delphi compilers
    7. Option to export the units uses graph in a GraphViz file (–graphviz) 
    8. Ability to exclude family of units form the GraphViz file (–graphviz-exclude)
    9. Support for NaN (not a number) comparisons as required by IEEE
    10. Optimized generated code for div operations when the divisor is a constant
    11. Two new functions to the System unit, GetCompilerVersion and GetRTLVersion 
    12. Floating-Point Exceptions are now disabled by default on all Platform

      Below: Multiline Delphi string literals in the IDE
      144 multiline


Bonus Section: In Windows Platform

    1. New WinAPI definition based on WinMD Microsoft metadata (311 header files with 41 MB of Delphi code)
    2. WinRT APIs and WebView 2 control API refreshed to the most recent version
    3. Edge browser: UserAgent is available in ICoreWebView2Settings; ICoreWebView2Profile2 contains methods ClearBrowsingData, ClearBrowsingDataAll, and ClearBrowsingDataInTimeRange; TEdgeBrowser OnDownloadStarting event, NavigateWithWebResourceRequest method, Print and ShowPrintUI methods
    4. New Windows 11 Styles
    5. TForm class EnableImmersiveDarkMode method and RoundedCorners property for Windows 11
    6. Title Bar support for Windows 11 snap layouts (see image below)

      Snap Layout for TitleBar work also for the IDE
      144 ide snap