C++Builder Architect 11.1 Alexandria

C++ 언어 코드 인사이트 구현을 향상시킵니다.
3월 17, 2022
신규 버전

기능

IDE Enhancements

  • General IDE Improvements
    • The “Start working” operation, after installation completes, now effectively restarts the IDE, so that the first execution is done with user permissions, instead of elevated permissions.
    • ‘Enable runtime themes’ is now turned on in the Base configuration of a project.
    • The ProjectRoot in a dproj/cbproj file should now always sort consistently.
    • The IDE Wait dialog’s ToolsAPI interface has had some parameters renamed to better reflect their functionality.
    • The ‘New Edit Window’ menu item is now disabled when a view does not support cloning. This includes the Welcome Page, which can’t be duplicated or dragged out to another window.
    • The Options > Saving and Desktop page has been split into two new pages:
      • Saving and Recovering (contains auto-recover and auto-save options).
      • Desktop and Layout (contains the remainder of the options).
    • You can now change the colors used for errors, warnings and hints in the Messages view in the Options dialog. You can set different colors for each IDE theme, i.e. set different colors for light, dark or other themes.
    • Added Styling support to some minor dialogs used by the IDE, such as asking the user to confirm or warn about overwriting files, checking for Unicode project names and using an invalid codepage.
    • The default C++ console app has been improved and creating a console app is now a shortcut on the File > New (and Create New) menus.
    • A small number of items from the IDE Fix Pack have been integrated:
      • The IDE toolbars such as editing toolbars.
      • Missing scrollbars in the Options dialog pages.
      • Object Inspector rendering glitches.
      • The IDE and code editor went blank when debugging.
      • Special keys (such as Microsoft Windows key) in the FMX form designer text input.
      • The list mode in the Projects view.
      • A variety of exceptions and many more.
    • Added New Items dialog which shows platforms for all items.
    • The New dialog where you can add items to your project now hides items based on the project’s active platform.
    • The New dialog now also supports multiple view styles, rather than just a vertical list (card, list, icons, and small icons).
    • The New Items dialog now uses the TControlList VCL control, which improves scrolling.
    • The Compile dialog shows the platform and builds configuration and prioritizes Errors before Warnings and Hints.
  • IDE High DPI quality
    • Data modules now save the PixelsPerInch property when its value is 96, the default. This is also the case for VCL forms.
  • Welcome Page
    • The Welcome Page now supports background images. Selecting an image will scale it to fit the Welcome Page area. The aspect ratio is preserved, meaning the left/right or top/bottom sides of the image may be offscreen so long as the other axis fits the Welcome Page size.
    • Added a new page in the IDE Options dialog for Welcome Page settings, including the background (which can be set per theme) and closing it when opening a project. You can also access this page from the Layout Editor.
    • Welcome Page frames are now transparent by default. The wallpaper you set will be partially transparent through them. The transparency amount is one of the Welcome Page metrics available in the ToolsAPI.
    • Spacing between frames and the upper and lower edges of the Welcome Page has been very slightly tweaked.
  • ToolsAPI support
    • The Welcome Page now has full support for creating Welcome Page frames using the ToolsAPI. Two Welcome Page demos have been added showing simple and advanced usage, which are available on the public Github. In its simplest form, you can create a TFrame descendant and display it with a caption. That frame can contain anything you want. However, there is more complex functionality that you can also make use of:
      • Frame captions can contain custom UI chrome (implemented via a second frame), such as the Open Recent frame (buttons) and Create frame (toggling between Delphi and C++).
  • GetIt Dialog Improvements
    • The GetIt dialog box has been redesigned, maintaining a similar UI, but adopting a ControlList component for the list of packages. This has a noticeable effect on performance.
    • Embarcadero RAD Studio now caches the package icons in GetIt, reducing the time for re-opening the dialog.
    • Added a new option to ignore patches in GetIt, so you can skip the installation of a patch but stop the notification of the pending patch.

Compilers and Toolchains Improvements

  • ASLR, DEP/NX, and TSAWARE
    • The Windows linkers now offer better support for platform security configurations:
      • Use the -GE: linker option to turn these flags on or off.
      • Enabling these settings is now the default.
      • Redistributable binaries (like package BPL files) are built with the security configurations enabled.
  • C++ Compiler and toolchain
    • The default constructor for UnicodeString is now no longer inline, which should help if you do not want to step into the constructor when debugging and invoking a function that returns a string.
    • AnsiStringT now has the System:: namespace prefix.
    • Many intrinsics headers (xmmintrin.h, etc.) should now be available.
    • The C++ RTL has a breaking change this release, meaning that C++ libraries must be rebuilt in 11.1 (i.e., don’t link against object files or .lib-s built with 11.0.) This change relates to handling handles correctly for Win64. Some internal RTL structures were not widened in the past, resulting in possible handle truncation; they are now wide enough.
    • More intrinsics (e.g. SSE-AVX) are now shipped with the RTL.
    • System::DynamicArray now contains some STL members for iteration, such as begin().
    • Several String functions that were in helpers in Delphi are now available from C++.
    • A wide variety of compiler bugs in the debugger (especially Win64) and debug info have been improved:
      • Using a TDS file in release mode.
      • Tweaks to locale, and many other RTL and STL areas.
      • Lots of improvements to import libraries.

LSP Improvements

  • C++ and cquery
    • In the new LSP Behavior tab, two options have been added that control how the cquery LSP server indexes files, which is how it stores the info it uses to fulfill code completion, navigation, etc:
      • Restart server each time a project is activated.
      • Index only files that are opened in the editor.
      • Note: Indexing can be very CPU intensive and you usually cannot use Code Insight until it’s complete. Note that restarting the server, such as when platforms are changed, also clears the index.
    • Other improvements include:
      • Code completion items are now displayed in the order that cquery returns them, which is scope order, unless you turn on Alpha Sort (off by default.)
      • Indexing should now be on by default in the Project Options for all C++ projects.
      • You can now code complete in header files that are not directly part of the project (e.g., not part of a cpp/header unit pair).
      • Changing project options or the active platform will now restart the server to match the new project settings.
      • The server now knows when a file has been saved and will update correctly. This is important for new files, because in this build Code Insight won’t function until the file exists on disk.
    • Other C++ features:
      • You can now code complete in a project’s main source file.
    • Performance Improvements:
      • Code completion now displays in two seconds or less, no matter the size of the project. Note that when invoking code completion in the global scope with a VCL project, there are over eighty thousand items returned.

Libraries Improvements

  • To help sharing code among projects build with FMX and VCL, framework specific predefined symbols have been:
    • FRAMEWORK_VCL - this predefined variable is set to true if the project uses the VCL framework.
    • FRAMEWORK_FMX - this predefined variable is set to true if the project uses the FireMonkey (FMX) framework.

FireMonkey

  • Improved Android SDK integration
    • Removed dependencies to the android.bat file tool in favor of advmanager and updated the IDe SDK Manager dialog for the Android platform.
    • The DEX compilation and DEX merging are now deferred after the C++ linking, making compilation without deployment faster.
    • TWebBrowser
      • Improved TWebBrowser on Windows (with WebView 2 support), including the ability to change the Windows Engine more than once. The default value of the WindowsEngine property has been changed.
      • Improved the ability for WebBrowser to work with local files on mobile.
  • Additional FMX Quality
    • Improved performance of TMessageManager.Unsubscribe.
    • Added Undo to TMemo context menu.
    • Emoji color improvements for both Android and Apple iOS.
    • Improved Metal GPU driver support on the Apple macOS platform.

Data

  • General
    • The Field Link Designer pane and New Field Dialog have been made larger and more usable.
    • In order to support Firebird 4 long field names (up to 63 characters), the 31-char limit in the field name in the database RTL has been removed.
  • FireDAC
    • Added Structure View support for FireDAC. Also some of the FireDAC windows offer better High DPI support.
    • Added support for MariaDB 10.6 server with a 10.6 client.
    • Added support for SQLite SEE, offering a command line Batch to build SQLite OBJs with C++Builder for FireDAC static binding.
    • FireDAC improves Firebird 4 driver by providing support for additional data types:
      • INT128.
      • NUMERIC with precision 19..38.
      • TIME WITH TIME ZONE, TIMESTAMP WITH TIME ZONE (limited).
      • DECFLOAT(16/34).
      • Native statement timeout.
    • FireDAC adds support for FireBird 4 page size 32768.

Internet

  • WebBroker on Android
    • The WebBroker server applications can now be deployed on an Android device or a developer board (like a RaspBerry Pi running the Android OS). Both on Android 32-bit and 64-bit.
  • DataSnap
    • Extended the Web.Win.ISAPIThreadPool to allow more than 64 threads. The NumberOfThreads variable type has been changed to Cardinal. The ShutdownTimeout variable (a timeout in milliseconds, which thread pool will wait to finalize all worker threads) has a default value of 2 minutes.
  • RAD Server
    • Some database structure improvements have been made and new matching REST SysAdmin endpoints have been provided:
      • GET /sysadmin/log - Returns info about LOG table content.
      • POST /sysadmin/log?minTime=<ISO8601 date> - Deletes all records from LOG table older than specified date/time.
      • DELETE /sysadmin/log - Deletes all records from the LOG table.
      • GET /sysadmin/backup?backupFile=<file path> - Creates a specified backup file of emsserver.ib database. The backup file will be on the InterBase server.
      • POST /sysadmin/backup?backupFile=<file path> - Restores the emsserver.ib database from the specified backup file. The backup file will be on the InterBase server.
      • GET /sysadmin/validate - Performs emsserver.ib database validation and returns the database status.
    • Added the ability to allow RAD Server users to log in from more than one session simultaneously.
    • Added a new deployment feature for RSLite.
    • Added the option in EMS.INI to pick a specific Interbase client library (for embedded or regular DB), with the ClientLib entry in the Data section.
  • Others
    • Added an option to select a client-side certificate in the REST Debugger.
    • The REST Debugger is now DPI-aware.
    • The TCustomRESTRequest class has a new BodyCodePage property, which specifies the request body code page. Some special values are:
      • -1 (the default value) - Use the platform default encoding.
      • 0 - Current active code page.
      • 65001 - UTF8.
    • Added support for switching the region in AmazonAPI.
C++Builder Architect

C++Builder Architect

더 적은 코드로 네이티브 C++ 앱을 10배 더 빠르게 빌드하세요.

C++Builder Architect 도 구매할 수 있습니다:

궁금한 점이 있으세요?

Embarcadero 사 제품 라이선스 담당자와 라이브 채팅