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.