Delphi 11 is released

Officially on September 9th, Embarcadero released the new version 11 of Delphi, named “Alexandria”.

This new version is shipped with a long list of improvements and new features. In this post, we will enumerate the most notable :

Language additions

The Delphi language has got many additions by providing support for :

  • Binary literals, in addition to existing support for decimal and hexadecimal literals :
    To use and handle binary numbers (numbers in the base-2 numeral system), just by using the ‘%’ symbol as a prefix, like the following :
const
  Five = %101; // Number 5 is (101) in binary
var
  x: Integer;
begin
  x := %100101; // This is 37
  • Digit Separator, to improve the readablity of numbers (even the binary numbers), by using the underscore ‘_’ symbol (it is ignored when parsing and compiling the code) :
const
  OneMillion = 1_000_000;
  BinaryNum = %1_0000_0000; // This is 256
  • AVX instructions (AVX-512) :
    Inline assembler (asm code) support for newer sets of instructions, including AVX2 (ymm) and AVX512 (zmm).

VCL

  • TRichEdit improved :
    • Wrapping the Microsoft RichEdit 4.1 (Msftedit.dll).
    • Removing XP dependencies.
    • New additional features such : URL detection, spell checking, background color and transparency.
  • TreeView CheckBoxes.

FMX components and targets

  • macOS ARM 64-bit target support : to build native M1 (Apple Silicon CPUs) applications, along with support for MacOS Intel 64-bit.
  • macOS Universal binary : creation of Universal Binary applications by including both ARM and Intel binaries in a single package.
  • Deprecation of macOS units : “Macapi.QTKit” and “Macapi.Quicktime”.
  • Android support for Google Play Billing Library Version 4.
  • Android support for “AndroidX” libraries (instead of the old “Support Library” libraries).
  • Multidex feature, to allow your app for generating multiple “classes.dex” files.
  • Using the newer “D8” DEX compiler, instead of the old “DX”.
  • TWebBrowser on Android support for file upload.
  • TWebBrowser implementation on Windows extended to Chromium Edge (via the platform WebView 2 component), along with the new FMX TWebBrowser property “WindowsEngine” to choose the browser engine (IE or ChromiumEdge). This is similar to the existing VCL TWebBrowser component.
  • High-DPI support improved for Windows and Desktop targets (due to updated scaling engine).
  • Linux-target support for, Ubuntu 20.04 LTS, RHEL v8 and Windows Subsystem for Linux (WSL2).
  • Refactoring of FMX platform services.

RTL

  • ZipFile support (using System.Zip) improvements :
    • Support for Zip64.
    • A new method to remove a file in a ZipFile.
    • GetFileName method in TZipHeader.
    • TZipFile.IsValid() accepts a stream parameter.
    • Supporting files larger in size than 4 GB.
  • Added System.IOUtils.TFile.Size.
  • Support for system paths longer than 260 chars (if they are supported by the OS, like on recent versions of Windows).
  • Support for data types with large memory structures, even exceeding 2 GB (under 64-bit compilers).
  • Many other enhancements and improvements in the JSON, REST server, Bluetooth, RTTI, Parallel programming library (PPL), etc.

Databases

  • FireDAC support for the latest versions of PostgreSQL and Oracle database.
  • FireBird driver libraries lookup improved.

IDE improvements

  • High-DPI support : the IDE, including the code editor and the form designer (for both FMX and VCL), has now a full support for the latest 4K+ monitors. By having cleaner, sharper fonts and icons, and high-resolution support.
  • Improvements in the Code Insight (DelphiLSP).
  • Remote Desktop support improved (for VCL and IDE).
  • FMX design-time guidelines : visual lines for moving and aligning controls (similar to the already existing for VCL), with enhanced margin and padding support.

Sources

Leave a Reply