RAD Studio Professional 10.2 Tokyo released

Released: Mar 22, 2017

Atualizações na 10.2 Tokyo

Recursos

FireMonkey

New System Status Bar Options on iOS

  • Two new properties have been added to TForm for changing the behavior of the system status bar on iOS: SystemStatusBar.BackgroundColor and SystemStatusBar.Visibility.

Enhancements to TMultiView

  • Turn off user interaction with TMultiView using the Enabled property.
  • New options to manage border appearance in TMultiView.
  • Bottom and top alignments for the docked panel mode in TMultiView.

Multi-Threading Support for TBitmap, TCanvas and TContext3D

  • TBitmap: Complete multi-threading support. Can be created, destroyed, and modified in any thread without synchronizations.
  • TCanvas: Supports being used from multiple threads at once, but is internally serialized.
  • TContext3D: Supports being used from multiple threads at once, but is internally serialized

FireDAC and Database

Improvements for Firebird

  • New Direct property to add support for the Direct I/O backup feature.

Improvements for MySQL

  • Support for MySQL v 5.7.
  • Support for MariaDB v 5.5 or later. Use FireDAC's MySQL node to connect to MariaDB.
  • Compatibilty with the recent MySQL versions 5.6.x and 5.7.x.
  • MySQL Prepared Statements API: now both old API (MySQL text protocol) and PS API (MySQL prepared statements protocol) are supported.
  • You can select a desirable API using the TFDResourceOptions.DirectExecute property.
  • Depending on the API in use, the TFDCommand.CommandIntf.CliObj property returns a TMySQLStatement or TMySQLResult object.
  • Support for internal BLOB streaming (in the smOpenWrite mode only).
  • Improvements for a synchronization of a connection transaction state and the TFDConnection.InTransaction property. This property allows you to determine whether a connection transaction is currently in progress.

Other FireDAC Changes

  • The TFDDataMove component has been removed from this release and is no longer available in Tool Palette. Use the TFDBatchMove component instead.
  • Note: If you need TFDDataMove for your legacy projects, use the FireDAC.Comp.DataMove.pas unit available at:
  • Start | Programs | Embarcadero RAD Studio 10.2 Tokyo | Samples, and then navigate to:
  • Object Pascal\Comp Layer\TFDBatchMove\DataMove_Deprecated
  • TFDBatchMove has been optimized. As a side effect, the DestValue and SourceValue properties of TFDBatchMoveMappingItem are no longer available.
  • TFDMSAccessService now supports Microsoft Access 2007 or higher.
  • Enhancements to the TFDMemTable component to edit the TFDMemTable dataset at design time. Now the TFDMemTable context menu provides the Edit DataSet... item that allows you to edit the component data and save them to the form. The data are available at run time.

Database improvements

  • VCL TDBImage direct support for JPEG and PNG graphic formats.
  • Support for display options for BlobFields.
  • Direct GUID access for TField classes.

RTL
HTTP Client

  • Improved async support in HTTP client

App Tethering Improvements

  • New SynchronizeEvents property for TTetheringManager and TTetheringProfile to control the event synchronization with the main thread. Therefore, Managers and Profiles can now control whether their event handlers are executed on the main thread or not.
  • Improved support for Log filtering: added more logging messages.

Mobile Platforms

Improved C++ packages for mobile

  • RAD Studio 10.2 Tokyo links C++ packages for iOS and Android statically. Previous versions of RAD Studio generated a file with the .so extension for C++ packages, but were not actually dynamic libraries. RAD Studio 10.2 Tokyo generates C++ packages with the correct file extension (.a). If you statically link against a .so package, you may need to change to link against the new filename.

RAD Server Multi-Tenancy Support

  • With Multi-Tenancy support, a single RAD Server instance with a single RAD Server database connection can support multiple isolated tenants. Each tenant has a unique set of RAD Server resources including Users, Groups, Installations, Edge Modules, and other data. All tenants have custom resources that are installed in the EMS Server. Also, as an administrator you can create new tenants, edit existing ones, add, edit, or delete details of your tenants, specify if the tenant is active, and delete the tenants that you do not need.

C++ Compilers
Better Support for Debugging - In Clang-enhanced compilers:

  • Local variables in code built with the Clang-enhanced compilers for Win32 and Win64 can now always be evaluated in watches or the Local Variables view.
  • When code has two local variables with the same name in different scopes in a method, variable evaluation can now resolve both and display the correct one depending on the current location.
  • Class names are now always displayed in the call stack.
  • (Clang-enhanced Win32) Support for external type files for debug information, which reduces duplication of debug information created for common types used in many compilation units, such as VCL types. This significantly reduces the size of debug information generated when building.

Better Codegen - In Clang-enhanced compilers:

  • Codegen for -O1 and -O2 optimization levels has been improved, including resolving all known issues.
  • New support for -O3. The Clang-enhanced Win32 and Win64 compilers support -O3, a strong optimization level which may double compiled code performance in some situations.

Mobile Platform support

  • C++ Android applications can be built without requiring specific versions of the NDK.

Linkers - The C++ linker has significant improvements:

  • Improved resource handling to address heap errors, including out of memory, VIRDEF, dwarf_str, and others.
  • The linker can now use up to 4GiB of memory; it is no longer limited to 2GiB.
  • The linker options have been extended to allow you to set the resource allocation sizes for specific types of debug or linker data.

Exception handling

  • Significant quality improvements for exception handling, addressing errors relating to memory leaks.

IDE

  • Code Insight and Code Completion for Delphi now correctly handles static and dynamic arrays.
  • The Find In Files dialog works on screens with high DPI.
  • Support for designing and opening forms at different DPIs has been improved.
  • The View Menu has been re-arranged. Tool windows such as the Object Inspector, Structure, Messages, etc have been moved to a Tool Windows submenu just below the existing Debug Windows submenu, and a new Editor submenu contains a number of editor actions and useful features from the editor's context menu. Other items have been moved to keep related items adjacent to each other.
  • The context menus for the code editor tabs and files in the Project Manager now have a "Show In Explorer" menu item, which will show the file's location in Explorer.
  • The project's manifest file support now supports several execution levels: As Invoker, Highest Available, and Require Administrator, and also allows the UI Access flag to be set.
  • IDE loading speed should be fast even with high network load or a missing network connection.
  • Support for building very large project groups, such as those with over a hundred projects, has been improved.

iOS debuggers

  • Full support for iOS10 debugging (from a 10.1 Berlin hotfix)
  • Full support for iOS Simulator debugging (from a 10.1 Berlin hotfix) - Delphi only.
  • Writing Delphi string values is supported in the iOS debugger
  • Evaluating character arrays gives the expected result
  • Errors ending the debug session (also on macOS) are resolved

macOS debuggers

  • Full support for macOS Sierra debugging (from a 10.1 Berlin hotfix)
  • Errors ending the debug session (also on iOS) are resolved

VCL

High DPI fixes - Improved High DPI support:

  • Form bounds are now correctly adjusted in response to WM_DPICHANGED messages, meaning TForm.AutoScroll works correctly, as well as the form's top/left position
  • Forms open at the correct scaling factor when the system has multiple monitors with different DPIs
  • TTabSheet and TPageControl, and controls placed on tab sheets or page controls
  • ActionMainMenuBar when moving a form across monitors with different DPIs
  • VCL menus (both main menus and popup menus) now display correctly on high DPI monitors
  • TStatusBar's height remains correct in high DPI
  • Message dialogs' icons are now scaled correctly
  • Anchored controls now stay in the expected position when moving a form between monitors with different DPIs
  • TCheckBox and TRadioButton paint correctly
  • Several issues with form inheritance, including that controls now use the correct font size when placed on a panel with ParentFont set to true on an inherited form, and TListView column sizes remaining correct on an inherited form.

Other improvements
GetIt installer

  • Enhanced parallel downloads.

Cloud

  • Improved Azure and AWS support with updated APIs.

Compilers

  • Delphi command line compilers are now large-memory-address enabled, allowing you to compile larger applications from the command line (and matching the memory available to the compilers when invoked in the IDE).
  • Given that dynamic arrays are managed types, involving reference counting and associated helper function generation, casting array elements using the @ operator is disallowed as it leads to memory corruption. Performing a similar operation is still allowed using an explicit cast operation, under the developer responsibility.

iOS 10 Simulator, device, and macOS

  • Full support for iOS 10, including iOS 10 32-bit and 64-bit debugging on device, Simulator support (Delphi only) and macOS Sierra support.