RAD Studio 11.2 Alexandria

Aggiunge il supporto di iOS Simulator per Delphi insieme al supporto IDE per Markdown.
Settembre 08, 2022 - 11:39
Nuova versione

Funzionalità

IDE Enhancements

  • High DPI VCL Designer - The VCL designer now uses a Microsoft Windows-like style when designing, meaning controls in the designer always draw using this style unless this feature is disabled. This style matches the Windows light or dark theme, whichever Windows is currently using.
  • Editor Tabs - In version 11.2, some tabs, such as source control or COM-type library editors, are given different colors to be easily differentiated from normal code tabs. You can control if tabs may display customer colors via the new tab colors configuration. There is support for custom tab colors via the ToolsAPI in the new INTACustomEditorView280 interface.
  • CPU View Syntax Highlighting - The CPU view now syntax-highlights the assembly code onscreen.
  • Markdown Support - The IDE now supports Markdown (.md) files and both Markdown and HTML richly formatted previews. Opening a Markdown file will show a rich rendered preview of the file. Markdown and HTML can only be edited in the code editor, not the formatted preview. Markdown files support:
    • Email and Web links, which open in the system default email client or web browser.
    • File links, which open in the IDE.
    • Images.
    • Tables.
    • Plus other standard Markdown formatting.
  • Removed Internet Explorer - The embedded Microsoft Internet Explorer control has been fully removed throughout the IDE. The rich HTML preview, the Markdown support, and HelpInsight all use a native VCL HTML control.
  • Font and Styles - Previous releases supported changing the IDE main window’s font and font size via editing some registry keys. Version 11.2 offers the option to change the IDE UI font and size in the IDE Options > User Interface page in the ‘IDE Font’ section. Similarly, the UI has now re-enabled a previously hidden setting to let the IDE use a custom style. The Options > User Interface > IDE Style page lets you use a custom VCL style in addition to the Light, Dark, and Mountain Mist styles. Both these are primarily intended to assist accessibility.
  • Projects View - The 11.2 release changes the behavior of double-clicking an item in the Projects view so that it only expands/collapses a tree entry if it represents a folder. Now, double-clicking performs the following actions:
    • Double-clicking on a unit opens the unit.
    • Double-clicking on a folder expands or collapses it.
    • Double-clicking on a project activates the project if it is not the currently active project. If it is a currently active project, it will expand/collapse it.
    • Double-clicking a C++ form selects and opens the form without expanding the node.
  • GetIt Enhancements - The GetIt package manager dialog now allows users to filter by Language. The package manager dialog also allows you to install a package from a local file and online packages. To do so, use the ‘Load Local Package’ button under the filters on the bottom left of the GetIt dialog. The Welcome page now contains a restored ‘New In GetIt’ pane. Displaying the most recently modified packages in GetIt and facilitating the discovery of new or recently updated libraries and packages. The Welcome Page will, by default, reopen when all projects are closed.
  • Other IDE Improvements
    • The Reopen list is now populated when a project is opened, not closed, meaning if the IDE is terminated before closing a project, you will see your most recently opened project visible.
    • There are several performance improvements and general quality fixes when running the IDE under Remote Desktop.
    • The Compile progress dialog and the Updating Local File Cache dialog (used when updating a remote SDK) now format the lines of code and number of bytes using the local locale, i.e., with commas or other separators. Making the numbers easier to read.
    • To find items easier, the options in File > New > Other > Inheritable Items are now sorted.
    • You use ‘Options’ in the IDE for changing settings (e.g., the IDE and Project ‘Options’ dialogs), but several menu items that opened options used ‘Properties’ instead. These have been renamed, so now there are: ‘Tab Options’ on the editor tabs context menu, ‘Editor Options’ on the editor context menu, and a new ‘Status Bar Options’ for the editor status bar.
    • There are also various quality fixes across the IDE, especially for high DPI.

Delphi LSP

  • Marking inactive code - Starting in 11.2, the code editor will now render code between inactive IFDEF-s, i.e., code that is conditionally compiled out / not compiled, differently from code that will be compiled. Inactive code is drawn blended with, or semitransparent to, the background color. All code and editor markup in an inactive region, whether code or features like brace highlights or selections, is subdued compared to active code regions. Inactive code can be as short as one character but often spans multiple lines. Because DelphiLSP provides this feature, it will reflect the LSP server’s knowledge of defined macros ($define-s.) This feature also works when using DelphiLSP with VSCode via the DelphiLSP addon.
  • XSLT Transforms for Help Insight - 11.2 includes improvements to the Help Insight. Using Delphi LSP, HelpInsight tooltips are generated by running an XSLT transform over the XML. You can edit HelpInsight.xsl to modify this transform.
  • Color constants shown in Code Completion and Tooltip Insight - When completing a VCL or FMX color constant (such as clWindow, clRed, etc.), the code completion window will show a preview of the color and its hex value. The same color is also shown in the tooltip when hovering over a color constantly.

C++ and cquery

  • Significant Cquery performance improvements, such as greatly improved performance, improving projects and project groups management, and limiting CPU consumption, are included.
  • C++ LSP - In the IDE Tools Options, under Tools > Options > User Interface > Editor > Language there is a tab called “LSP Behavior” on the C++ LSP page. This has been available since 11.0, but we have a new third setting, ‘Index all files in the project group.’ For more information, please read the Configuring C++ Code Insight documentation to tune its behavior for your projects and needs.

Compilers and Toolchain Improvements

  • Android Target API - This release targets Android API Level 32 (up from API level 30 in 11.1). The main reason is Google Play store mandates Android API Level 31 starting in August 2022 for new submissions and in November 2022 for updates. There are several related changes to the Android toolchain for both Delphi (32-bit and 64-bit) and C++Builder (32-bit), including:
    • Updating the JDK version installed with RAD Studio to JDK 11 (required by the latest version of the Android SDK and tools).
    • Upgrading the default value for the 'targetSdkVersion' manifest attribute to 32.
    • Updating the 'AndroidManifest.xml' template to set a value for the 'exported' attribute in the declaration of the 'FMXNativeActivity' activity (required by API Level 31 support).
    • RAD Studio version 11.2 now supports generating a PKCS12 Keystore and also includes new permissions in the Application > Uses Permissions page of the Project Options dialog. And an update to the Android Java SDK finder so that if the Eclipse Adoptium JDK is available, it will be used in preference to other JDKs.
  • Support for Delphi Apple iOS Simulator - Version 11.2 offers iOS Simulator support for Delphi. The support includes only the ability to generate iOS Simulator binaries for Apple macOS devices running on ARM-64 (M1 or M2). The RAD Studio IDE can compile, deploy, execute and debug applications targeting the iOS Simulator for ARM 64-bit.
  • Delphi Compiler Enhancements - As part of the RAD Studio 11.2 Delphi compiler improvements, Delphi further expands Address Space Layout Randomization (ASLR) support for the Win64 platform by supporting High Entropy ASLR (HE ASLR) by adding the ability to randomize memory addresses at high locations.
  • C++ Compiler and Toolchain improvements - This release includes quality improvements in the C++ toolchain. Some of the quality improvements include:
    • Ilink64 has a number of fixes.
    • The compiler will now give an error when exceeding the VIRDEF maximum. Previously, this would cause the linker to give an error.
    • STL iostreams performance has been greatly improved and now takes less than 25% of the time.
    • Improvements to the object converter (omf2coff).
    • Improvements to delay loading.
    • A number of record helpers from Delphi are integrated into C++.
    • A number of general quality improvements in the compiler and RTL.

Debuggers

  • LLDB for Win64 C++ - You can now do remote debugging using the Win64 C++ debugger.
  • LLDB for Delphi - The 11.2 release includes support for debugging iOS64 and the iOS Simulator. LLDB Delphi support has many improvements to its understanding of the Delphi language, including basic support for sets, dynamic arrays, nil, pointer casts, empty strings, and more. In 11.2, the LLDB debugger is used for the following platforms:
    • C++ Win64.
    • Delphi macOS ARM 64.
    • Delphi macOS Intel 64.
    • Delphi Android 64.
    • Delphi and C++ iOS 64.
    • Delphi iOS ARM Simulator (ARM 64).
    • Delphi Linux 64.
  • LLDB for Delphi for Linux - This release supports the new LLDB for Delphi for the Linux 64bit platform. Linux64 previously used GDB, and there were many reported issues around evaluating anything other than basic types. We believe LLDB should be a great improvement. To debug a Linux console application using standard input (e.g., ReadLn), see the documentation on using a launcher application.
  • Connecting Python 3 - Running LLDB on Linux via PAServer requires Python 3 to be installed, and that LLDB can find it.

VCL and FireMonkey Changes

  • WebView2 in TEdgeBrowser and TWebBrowser
    • The new TWebBrowser.EdgeUserDataFolder property lets you specify where user data (cookies, caches resources, etc.) are stored.
    • The new TWebBrowser.EdgeBrowserExecutableFolder property lets your app find and use a specific WebView2 runtime instead of using the system’s version.
    • Updated the definition of the Web View 2 API (not binary compatible with the VCL components), including support for the ICoreWebView2_2 interface.
  • General VCL Improvements
    • Improved the TNumberBox input management.
    • Improved the TDateTimePicker format settings.
    • Using CardPanels inside a frame.
    • Deleting a TCardPanel.
    • Improved the PopupComponent property of a TButton with bsSplitButton.
    • Improved the TListView overlays when the OwnerData is True.
    • Improved High DPI issues for TBalloonHint.
  • FireMonkey
    • TBufferedLayout reacts to an update of the styles of contained controls.
    • Added hints to the buttons of the FMX style designer.
    • Improved bitmap processing on iOS with Metal.
    • Support for an iOS status bar with dark icons.
    • Improvements over TPathData processing and rendering, both in terms of quality and performance, including quadratic Bézier curve commands and other transformations.
    • Increased the rendering speed of TPath on GPU canvas.
    • TListBox now supports Shift+Click to select a range.

RTL and Data

  • FireDAC reFind Utility - The reFind utility can assist the migration of dbGo projects to FireDAC. In addition to a migration script, there is also a compatibility unit, FireDAC.ADO.Migrate.pas. When performing code replacement with reFind.exe, you can use a new option to "leave the old target code as a comment instead of deleting it". Use the new /C switch to comment instead of removing code.
  • Updated FireDAC Drivers
    • FireDAC supports the latest Microsoft ODBC Driver for Microsoft SQL Server (version 18).
    • Improved the MSSQL Driver from macOS on M1 with better handling of SQL_C_WCHAR.
    • Added support for MongoDB’s new transaction feature. The main MongoDB API is located in FireDAC.Phys.MongoDBWrapper.pas unit. The new transaction support is provided by the new API in:
    • TMongoTransactionOptions class.
    • TMongoSession class.
    • TMongoConnection.NewSession method.
    • TMongoCollection.Session method.
  • FDMonitor and FDExplorer
    • FDExplorer / FDMonitor now has syntax highlighting in SQL views.
    • FDMonitor has a new "SQL Output" view for tracking only SQL commands.
    • FDMonitor has new options for tracking the "SQL Output" view.
    • FDExplorer / FDMonitor now has Search / Search Next commands.
    • Added new items to TFDMoniEventKind: ekSQL, ekSQLVarIn, ekSQLVarOut to produce output to "SQL Output".
    • Optimization of ODBC drivers with tracing is enabled when ekVendor is excluded.
    • Optimization of TFDConnectionDef loading.
    • Font size on HighDPI was improved for both FDExplorer and FDMonitor.
    • The embedded FireDAC SQL text property editor now supports SQL syntax highlighting, line numbers, and support for common shortcut keys like Ctrl+F, Ctrl+R, F3, and Alt-G.

RTL Enhancements

  • ZLib
    • Updated the integrated ZLib to 1.2.12 to address a recently patched vulnerability. Some other ZIP file behavior, including using “stored” and not deflated files, comment management, and the behavior of ZDecompressStream with truncated Zlib data, have been improved. System.Zip also can now preserve symlinks on Linux.
    • The performance of Zlib when writing small Data packages has been improved.
  • General
    • There is a new TProxySubrangeStream class in System.Classes.pas. The new stream class represents a "subrange of another stream" and acts as a proxy.
    • The PCRE regex engine compiles with JIT enabled, offering significantly better performance. Additionally, the library now exposes the procedure TPerlRegEx.Study in the TRegEx record.
    • Several RTTI-related improvements include TVirtualMethodInterceptor with const parameters, invocation with "pascal" calling convention, and TVirtualInterface issue with float values on iOSDevice64.
    • Optimized several core functions, including (among others) TStringHash, InternalUniqueStringA, and InternalUniqueStringU, plus two System unit functions, _UStrEqual and _UStrCmp, and SysUtils.CompareStr.
    • System.SysUtils.StrToFloatDef no longer changes the numerical exception mask.
  • HTTP and REST Client Library
    • TRestRequest’s handling of MIME types and multipart/form-data has been improved. In addition, proxy detection has been improved for Windows, and THTTPNetClient SSL-certificate checks have been improved for Android.

RAD Server

  • New auth token/session expiration for RAD Server. There is a new parameter in the RAD Server configuration (EMS.INI) called SessionTimeoutAdded new configuration options in emsserver.ini to specify the paths to FDConnectionDefs.ini and FDDrivers.ini FireDAC configuration files.
  • Made it possible to use TEMSFireDACClient.PostUpdates with a custom session token.
  • Improved the list function of TEMSFileResource.
  • Removed the incorrect 2-users limitation in RAD Server Lite.
  • Added the IP Address and DateTime to RAD Server logging.
  • Added an Execute context menu item to the TEMSFireDACClient component (similar to the TRESTRequest component) so that you can create persistent fields based on the result set.

Querying SKU and Platforms on the Command Line and via ToolsAPI

  • In 11.2, third-party components or plugin vendors can query what SKU is installed (e.g., Architect, Community, etc.), what platforms are installed (Win64, macOS ARM, etc.), what personalities are installed (Delphi or C++Builder or both), and if it is a Trial. Querying SKUs can be useful for making decisions when installing components, including in your installer, and changing behavior at designtime inside the IDE itself.
  • Run bds.exe with the new /ProductInfo:KIND parameter to get the console´s output. KIND can be Trial, SKU, Platforms, or Personalities. Learn more about the new parameter on the General options for BDS.EXE page.
  • The new IOTAVersionSKUInfoService interface allows you to query the list of installed platforms, the SKU, and if the IDE is running as a Trial version.
Delphi iOS Simulator

RAD Studio Professional

Crea app 5 volte più velocemente con un'unica base di codice per Windows, Android, iOS, macOS e Linux.

Hai una domanda?

Chatta live con i nostri specialisti di gestione delle licenze di Embarcadero ora.