D28.ALEXANDRIA.11.1.0.0 - ideasawakened/DelphiKB GitHub Wiki

Delphi 11.1

Update 1 for Embarcadero RAD Studio 11 Alexandria was released 2022-03-15.

Related: Delphi Master Release List, D28.ALEXANDRIA.11.0.0.0, D28.ALEXANDRIA.11.2.0.0

RAD Studio 11.1 has a strong focus on quality improvements. Key quality focus areas include:

  • IDE
  • Remote Desktop
  • Delphi and C++ Compilers
  • C++ Toolchain
  • Delphi LSP
  • C++ LSP
  • Delphi RTL
  • VCL
  • FireMonkey
  • Data
  • Internet
  • This release provides quality improvements for over 650 publicly reported issues and customer feature requests.
    • 250+ issues for IDE
    • FireMonkey + VCL: Around 100 issues each
    • RTL, Data, Compilers: 50+ issues each

Items to be aware of

  • You can tell the difference between 11 and 11.1 by checking for RTL constants found in the System unit:
  if CompilerVersion = 35 then //RAD Studio 11 Alexandria
  begin
    {$IF RTLVersion111}
      ShowMessage('This is version 11.1');
    {$ELSE}
      ShowMessage('This is version 11');
    {$IFEND}
  end;

General IDE Improvements

  • The “Start working” operation after the installation is completed effectively restarts the IDE, so that the first execution will be done with user permissions, instead of elevated permissions.
  • ‘Enable runtime themes’ is now turned on in the Base configuration of a project.
  • The ProjectRoot in a dproj/cbproj file should always sort consistently.
  • The IDE Wait dialog’s ToolsAPI interface has had some parameters renamed to better reflect their functionality
  • The ‘New Edit Window’ menu item is now disabled when a view does not support cloning. This includes the Welcome Page, which can’t be duplicated or dragged out to another window.
  • The Options > Saving and Desktop page has been split into two new pages:
    • Saving and Recovering (contains auto-recover and auto-save options)
    • Desktop and Layout (contains the remainder of the options.)
  • You can now change the colors used for errors, warnings and hints in the Messages view in the Options dialog. You can set different colors for each IDE theme, i.e. set different colors for light and dark or other themes.
  • Added Styling support to some minor dialogs used by the IDE, such as asking the user to confirm or warn about overwriting files, checking for Unicode project names, and using an invalid codepage.
  • The issue where a project file might have an inconsistent sort order in the deployed files, meaning it will change without its meaningful content changing is fixed.
  • The default C++ console app has been improved, and creating a console app is now a fast shortcut on the File > New (and Create New) menus for both C++ and Delphi.
  • A small number of items from the IDE Fix Pack have been integrated.
    • The IDE toolbars such as editing toolbars.
    • Missing scrollbars in the Options dialog pages.
    • Object Inspector rendering glitches.
    • The IDE and code editor went blank when debugging.
    • Special keys (such as Windows key) in the FMX form designer text input.
    • The list mode in the Projects view.
  • The New Items dialog shows platforms for all items.
  • The New dialog where you can add items to your project hides items based on the project’s active platform.
  • The New dialog also supports multiple view styles, rather than just a vertical list (card, list, icons, and small icons.)
  • The New Items dialog now uses the TControlList VCL control, which improves scrolling.
  • The Compile dialog shows the platform and builds configuration and prioritizes Errors before Warnings and Hints.
  • IDE High DPI quality
    • Data modules now save the PixelsPerInch property when its value is 96, the default. This is also the case for VCL forms.
    • Dynamically created frames are now scaling correctly when designed in high DPI.
  • Welcome Page
    • The Welcome Page now supports background images. Selecting an image will scale it to fit the Welcome Page area. The aspect ratio is preserved, meaning the left/right or top/bottom sides of the image may be offscreen so long as the other axis fits the Welcome Page size.
    • There is a new page in the IDE Options dialog for Welcome Page settings, including the background (which can be set per theme) and closing it when opening a project. You can also access this page from the Layout Editor.
    • Welcome Page frames are now transparent by default. The wallpaper you set will be partially transparent through them. The transparency amount is one of the Welcome Page metrics available in the ToolsAPI.
    • Spacing between frames and the upper and lower edges of the Welcome Page has been very slightly tweaked.
    • The Welcome Page now has full support for creating Welcome Page frames using the ToolsAPI
  • GetIt Dialog Improvements
    • The GetIt dialog box has been redesigned, maintaining a similar UI, but adopting a ControlList component for the list of packages. This has a noticeable effect on performance
    • RAD Studio now caches the package icons in GetIt, reducing the time for re-opening the dialog
    • There is a new option to ignore patches in GetIt, so you can skip the installation of a patch but stop the notification of the pending patch.

ASLR, DEP/NX, and TSAWARE

  • (Delphi) These features were already available as compiler/linker flags:
    • {$DYNAMICBASE} for ASLR
    • {$SetPEOptFlags $40} for DEP/NX or the matching ‑‑peflags option
    • Enabling these settings is now the default
    • Redistributable binaries (like package BPL files) are now built with the security configurations enabled
    • Note: RSP-37408 Delayed flag break Exe's ASLR function

Delphi Debugger for macOS ARM and Android

  • New debugger when running macOS applications on an Apple ARM device. This debugger is not used if you are using an Intel machine.
    • This new debugger is a recent build of LLDB, and its key technology is a Delphi parser that understands a subset of Delphi syntax. (For example, it understands Delphi expressions, though you cannot define a new class. It should understand enough Delphi for all debugger expressions you need to use.) This syntax should be truly Delphi-like: case-insensitive, and able to evaluate complex expressions in Delphi syntax.
    • This debugger is also enabled for Android 64-bit. This debugger is much less likely to cause ‘disconnected’ errors or freezes.

Delphi LSP

  • DelphiLSP has a significant focus on quality and speed, and 11.1 brings some considerable performance improvements.
  • Exception info is displayed again in Help Insight.
  • Line number information is now available in HelpInsight for arrays and sets
  • Pressing Ctrl-Shift-Down inside an inactive macro/ifdef jumped to the implementation of the next method declared
  • Ctrl-click navigation now works with aliased generic types. For example, if IntArray is a TArray, control-clicking on IntArray will take you to the location with the TArray type declaration, not to the location of TArray<> in System.pas.
  • An issue where ctrl-shift-up/down navigation did not work correctly when there were include directives in the unit has been fixed
  • Error Insight did not work when the project was using files that were located on a different drive to the project
  • Normal projects will now load much faster. The technique we use to load a project has been significantly changed with much less parsed, and DelphiLSP should finish loading a project and respond to requests much more quickly.
  • Error Insight results will now update much more quickly. You can expect a 5 to 30x speed increase here as well. The most dramatic improvement is seen for units with many dependencies (lots of other units used.)
  • Other improvements include:
    • Better handling of macros (defines) so that toggling between the implementation and declaration of a method works better when there are IFDEFs, as will code completion in class declarations.
    • Macros (defines) will also be found if they are declared in an included file, affecting the above.
    • When declaring a property, code completion will suggest getters and setters.
    • Code completion will show set types.
    • Type parameters will be shown in code completion in a class declaration, including generic types (e.g., T) in a generic declaration.
    • Parameter tooltips/help can be shown when instantiating generic types.
    • Code completion showed some TObject-specific completions, like AfterConstruction, when completing inside a record declaration; this has been resolved.

Libraries Improvements

  • To help sharing code among projects build with FMX and VCL, we added framework specific predefined symbols:
    • FRAMEWORK_VCL - this predefined variable is set to true if the project uses the VCL framework
    • FRAMEWORK_FMX - this predefined variable is set to true if the project uses the FireMonkey (FMX) framework
  • There is a new stream class, TURLStream, and a general base class: TAsyncStream is a new base class for async streams, inherited from TMemoryStream; TURLStream is an async stream supporting URL paths, inherited from TAsyncStream.

External Info Snapshots

Links

Images

11.1 Now Available

Integrations and Targeted Platforms

New Settings for customizing Build Log Colors

Build Log Colors Messages Window

  • Note - the messages are colorized based on finding "Warning" and "Error" in the text so there can be some issues. See RSP-37621

New Compiler Settings for DEP/NX, ASLR, TSAWARE

Data Execution Prevention Compatible

FireDAC Structure View support

FireDAC Structure View

LSP Improvements - Type Parameters on Class Declaration

LSP Improvements

Build progress dialog updated with Platform and Build Configuration

Platform and Build Configuration

New Items dialog updated with Platform

New Items Dialog

Welcome Page with custom background image and custom plugin

Welcome Page plugin

Quality Portal Issues

Quality Portal Issues

⚠️ **GitHub.com Fallback** ⚠️