C++Builder Professional 10.2 Tokyo

Greatly improved compiled C++ performance, debugging, and large memory support for the linker.
March 22, 2017 - 15:17
New Version

Features

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.

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.

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

  • HTTP Client Library provides support for 64-bit Linux.
  • Improved async support in HTTP client.

App Tethering Improvements

App tethering gains the following features:

  • 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.

IDE

  • 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).
  • 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.

GetIt installer

  • Enhanced parallel downloads.

Cloud

  • Improved Azure and AWS support with updated APIs.

Compilers

  • 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 and macOS Sierra support.
C++Builder Professional.

C++Builder Professional

Rapid C++ application development toolset for native Windows, Mac, and Mobile development, with broad Cloud and IoT support.

Got a Question?

Live Chat with our Embarcadero licensing specialists now.