Delphi Professional 10.4.1 Sydney

Released: Sep 2, 2020

Atualizações na 10.4.1 Sydney

Recursos

Supported Platforms

  • Added support for deploying apps on Microsoft Windows Server 2019.

IDE

  • Projects
    • Package AUTO libsuffix: packages can now have an automatic version suffix, instead of manually updating and specifying the right version suffix with each new release.
    • The Projects pane context menu items that were no longer available after 10.3 are now available via a drop-down in the Projects pane toolbar.
  • Layouts
    • Improved support for multi-monitor desktop layouts.
    • Improved support for form designers.
    • Improved layout switching: if the same layout is specified for both when opening or closing a project, the layout won’t be applied, avoiding the unnecessary switching of layouts.
    • Desktop layouts which cannot be applied, e.g. they are floating layouts or are no longer supported, will be listed in gray in the Desktop Layout combo box in the title bar.
    • Improved support for 4K monitors.
    • If the IDE expects a project’s .dsk file but it does not find it, it opens using the default layout.
  • UI
    • The Project Options, IDE Options, GetIt, and New Items dialogs now have scrollbar tracking.
    • The Options dialog (environment options) used to always open to show settings for the Win64 target platform; now it opens according to the currently active platform.
    • The guided tour has been removed from the Welcome page.
    • Improved the selection of items on the Structure pane, including where you would click on an item and another item was selected.
  • General
    • The names of the 64-bit Microsoft Windows debuggers (visible in the Attach To Process dialog) have been clarified to explain which is for Delphi and which for C++. This should help you choose which debugger to use when attaching to a process.

Delphi LSP/ Code Completion Changes

  • Improved memory usage, with DelphiLSP processes now using much less memory.
  • Improved speed: code completion results should appear much more quickly.
  • Inside Code completion, go to definition and hover, all provide better results.
  • Added new options for controlling code completion, allowing you to tweak the functionality to behave much more similarly to classic completion.
  • Class completion settings have been moved to the Code Insight settings page.
  • When filtering code completion as you type, the matching characters are now optionally drawn underlined.
  • Files changed outside the IDE (e.g. by an external editor or source control) will be recognized by the LSP server and re-scanned.
  • Improved code completion in packages.
  • Code Insight for Large Projects
    • Improved the notifications to the server when there are IDE-side changes. This reduces churn and improves completion accuracy.

RTL Improvements

  • Added new TLightweightMREW Record - Embarcadero have introduced a new reader-writer lock implementation, working across all supported platforms and which is faster and more lightweight than the old TMultiReadExclusiveWriteSynchronizer (a.k.a. TMREWSync). TLightweightMREW wraps a native implementation of a reader-writer lock on each platform.
  • SOAP and XML - SOAP WSDL Importer: Improved the WSDL importing logic and SOAP clients invocation.
  • Web Clients
    • Winapi.Winsock2 now includes inet_ntop to better support IPv6 addresses.
    • TRESTResponseDataSetAdapter imports JSON strings with appropriate length.
    • Improved support for enums in TJSONSerializer.
    • Creating a TIPAddress from a URL now works on Microsoft Windows.
    • Added support for the new NSURLSession API on both Apple Mac OS X 10.11 and Apple iOS 9 platforms.
  • Database
    • Improved FireDAC support for Microsoft SQL Server Function Parameters.
    • Improved TFDQuery with Calculated- and BLOB-Fields.
    • Improved TFDTable PostgreSQL multicolumn index field order.
    • Improved FireDAC-PostgreSQL parsing of QuoteTag inside strings.
  • Other RTL Improvements
    • Improved performance of TStrings with custom LineBreak.
    • Optimized TObject methods returning or checking strings.
    • Optimized LoadResString.

VCL Improvements

  • Improved TGridPanel’s handling of percentage-based spacing.
  • Improved scaling and moved TBitBtn's inbuilt glyphs to HighDPI.
  • Added support for high DPI scaling in the custom title bar.
  • Improved TUpDown component Position property and OnChangingEx event.
  • The StatusBar component has added support for DoubleBuffered drawing.
  • Improved the TLabel word wrap by replacing the font height calculation logic.
  • Improved the caption widths of owner drawn top-level menu items, and styled menus and their scaling.

Embarcadero FireMonkey

  • Improved FMX TMemo - Added improvements to the Microsoft Windows implementation and adding support for Apple macOS to the new FMX TMemo component architecture.

Delphi Language

  • This release improves the Delphi compiler in several areas. In particular the focus was on supporting the LSP code completion, and in improving the managed records quality.
  • Improved package references and C++ HPP files generation.
  • Improved compiler performance in a few areas, optimizing unit names lookup and other internal searches, benefiting large projects.
  • Improved code generation.
  • Improved the quality of Managed Records, including:
    • Optimized return values.
    • Cleanup of a few compiler errors.
    • Improved operator Assign.
    • Changes to Default(T) for managed records.

Correções

IDE

  • Projects
    • The Pentium-safe FDIV compiler option is no longer shown in the Delphi compiler options.
  • UI
    • Several listview controls, which can be difficult to read in the dark theme, have been replaced by the virtual treeview.
    • Several Object Inspector fixes, especially around flickering and selecting the wrong property.
  • General
    • ‘Broadcast to devices’ is off by default. This always accessed the network on IDE startup, causing errors for some customers. Now that it’s disabled, (valid) network errors will only occur if you turn it on.
    • ‘Delete Invalid Paths’ should no longer remove valid paths.
    • Moving toolbars no longer presents issues.
    • "-showotamenunames" (used by ToolsAPI developers) has been re-enabled.
    • Editing a string list in the code editor now works again.
    • Dialogs are shown in the IDE using a modern style.
    • Drawing issues, such as showing the IDE window as a solid color when opening a project, are resolved.
    • On Windows 7, the title bar no longer has a white line at the top.
    • The action editor used to draw images as black, which is resolved.
    • Some IDE menus now draw correctly (e.g. popup menus in Audits); also some menus did not show the menu Checked state, but now do.
    • The debug symbols search path now supports $(Platform) and $(Config) environment variables.
    • The code editor used to let you select invalid encodings for a unit (applicable only to forms); these are now no longer available.
    • An issue installing packages that presented as being unable to load a package, caused by packages with the filename case differing on disk and usually seen with large projects, has been resolved.

Delphi LSP/ Code Completion Changes

  • Several fixes for general Code Insight issues presenting as no completion results, including an issue with a + symbol in the path, plus several others.
  • Packages with contained units no longer cause errors.
  • Code completion will offer symbols from a required package.
  • There should be no more false errors reported in packages.
  • Help Insight shows accurate content when hovering over a symbol.
  • Code completion will work when ‘Use MSBuild externally to compile’ is turned on.
  • Errors rendering ‘red squiggles’ have been resolved when the length of the red squiggly line was wrong.
  • Fixed an issue when code completion’s list was set to sort by name instead of scope, selecting an item inserted the wrong text.
  • Include all of the fixes from the previous version.

RTL Improvements

  • Parallel Programming Library
    • Many fixes to TThread.WaitFor, TParallel.For, TParallel.Join, TConditionVariableMutex.WaitFor for Linux, TTask.WaitForAny, and the TPoolThread class IdleWorkerThreadCount.
    • Fixed some issues with TThreadedQueue related with PopItem and the use of a large number of threads.
  • SOAP and XML
    • Fixed a few long-standing issues with the TXMLDocument component.
  • Web Client
    • A few TRestResponseDataSetAdapter fixes.
    • Fixed issues with proxy support on macOS.
  • Database
    • A significant number of DataSnap issues have been addressed, including some performance problems and memory leaks and MidasLib, DatasetProvider and TClientDataSet issues.
    • Fixed TFDMemTable FindFirst with IndexFieldNames.

VCL Improvements

  • Several TGrid regressions in version 10.4 have been resolved, including TStringGrid and other grid controls, misalignment in grid StretchDraw method in OnDrawCell, and others.
  • TPageControl SetTabIndex methods now works correctly if there are hidden tabs.
  • TDateTimePicker text doesn’t look blurred on move hovering.
  • TListView infotip stays visible longer.
  • DB Controls border looks the same as the non-data-aware controls.
  • Styles respect the ImageMargins of TButton and TButton text positions.

FireMonkey

  • FMX TMemo - There are fixes for TEdit.
  • Fixed an issue where TListView OnItemClick fires even if already selected.
  • Fixed an issue with inconsistent values for TMediaPlayer.Duration on Android.
  • Fixed iOS WebBrowser issue with external links.
  • Fixed an issue with TStringGrid OnCellDblClick event.
  • Fixed an issue with TListView Checkmark Accessory disappearing.

Delphi Language

  • Fixed a few 10.4 regressions and unexpected changes (including issues with goto statements and other uncommon scenarios).
  • Fixed issue with the coexistence of managed records and generics.
  • Fixed an issue with some cases of missing invocation of Initialize.

Other Enhancements

  • Fixed an issue with an access violation in the License Manager application.
  • Directly invoking GetItCmd.exe no longer removes installed packages from the system.