官方下载地址:
http://altd.embarcadero.com/download/radstudio/10.3/delphicbuilder10_3_0_94364.iso
破解: 工具 教程
The RAD Studio 10.3 Rio release contains the following new and improved features.
The Delphi language in 10.3 has a fairly core change in the way it allows far more flexibility in the declaration of local variables. Until now, following classic Pascal language rules, all variable and constant declarations had to be done in a var or const block written before the beginning of a function, procedure or method code.
The new inline variable declaration syntax allows you to declare the variable or constant directly in the code and assign a value to it directly in the same statement. It is also possible to declare variables in a nested code block, with visibility and lifetime limited to that nested block.
Variables declared inline also benefit from type inference. You do not need to specify a type for an inline variable with a direct assignment, as it can get inferred from the value assigned to it.
The Linux 64-bit compiler in 10.3 has been ‘reverted’ to using the non-ARC implementation of object memory management, matching exactly the Windows behavior.
The NEXTGEN define has been disabled for the Linux 64-bit compiler.
RAD Studio 10.3 Rio has enabled support for the older-style AnsiChar/AnsiString data types on Linux. Use them with care, given Unicode is the preferred string type also on Linux and that Ansi code pages on Windows and Linux won’t match. However, this can help increase compatibility with existing low-level string management code.
C++Builder and RAD Studio 10.3 introduce an updated Clang-enhanced compiler with C++17 support for Windows 32-bit. Part of our progressive compiler upgrade, you can now use the latest C++ language features for more powerful and concise code, more compiler optimizations giving you faster code, and make use of more third-party C++ libraries to build more powerful applications.
Clang is the default
In previous releases, a new C++ project defaulted to using the classic compiler for the Win32 platform. This has been changed, and the default is now the Clang-enhanced compiler.
Backwards compatibility
The Win32 compiler defaults to C++17 for all projects. However, in the Project Options > C++ Compiler page, you can choose to use an earlier language standard, including C++14, C++11, and even C++98/03.
There are some great new features in C++17 that will enhance your productivity and your code.
For a good overview of what’s new in C++17, read:
As a result of upgrading from C++11 to C++17, RAD Studio 10.3 Rio also includes support for C++14.
C++Builder uses the Dinkumware STL to provide the C++ standard library for Windows. C++Builder 10.3 uses an updated, 2018 version of the the Dinkumware STL for both Win32 and Win64.
Many C++ math functions have a new implementation. On average, these methods are approximately twice as fast as in the previous release.
Code completion for C++ Win32, using the updated Clang-enhanced compiler, is significantly faster and with better results than previous C++ code completion. It uses a Language Server Protocol server, cquery.
Code completion for this compiler is now asynchronous. Typing will not pause while completion is being calculated. It uses a Language Server Protocol server, cquery.
Error Insight, which shows a preview of code issues inline in the editor by drawing a red underline under errors, is now available for C++. This uses the Language Server Protocol and cquery, and is available when using the new Clang-enhanced compiler for Win32.
In the past, turning on debug info disabled compiler optimizations. In 10.3’s updated Win32 compiler, debugging an optimized build is now supported. Note that in an optimized build, it is very common for expressions and variables to be unavailable to the debugger, because they are optimized out.
A number of widely used C++ libraries are available through GetIt.
In previous releases, there were subtle platform differences in the ABI underlying method passing, especially for records between 4 and 8 bytes in size when passed by value or by reference. These are now resolved, and issues you may have seen migrating C++ Win32 code to Win64 when interacting with Delphi, especially when using event handlers, should be resolved. The canonical example is an event handler taking a TPoint parameter: in Win32 this showed correct values for the point’s x and y coordinates, but in Win64 reading x and y gave ‘junk’ values. This no longer occurs.
Most changes affect fastcall, but RAD Studio 10.3 Rio also includes changes to cdecl and other calling convention support for full compatibility, including on mobile platforms.
RAD Studio 10.3 Rio has an improved look and feel of the main window and several key dialogs for a more modern style with an emphasis on readability and clarity.
RAD Studio 10.3 includes a new light theme and a revision of the dark theme, with an emphasis on usability for long periods of time.
The IDE and Project Options dialogs have a cleaner look with controls aligned and spaced regularly. Instead of a gray background, the windows look more modern with a white background, a caption for each settings page, and a full-width selection for the options tree.
New categories have been introduced in the options tree and some options have been moved to new categories. For example, in the Project Options dialog, the application icons or images are no longer on the Application page, but in Application > Icons.
Both Options dialogs can be searched using a new search box in the title bar.
RAD Studio 10.3’s main window has a cleaner look, it is more readable and aligned. Some changes include:
The New Items dialog window lists items in a scrollable list, with a name and description. To ease finding items, some items are now in multiple categories (for example a dynamic library is now present in Windows and Multi Device), and the search has been moved to the title bar.
The Compile dialog now makes the number of hints, warnings, and errors clear. A new layout makes it more readable.
The GetIt Package Manager now shows items in a scrolling list, instead of pages. It also has a cleaner look, and search has been moved to the title bar.
Form Loading / LiveBindings Design Time IDE Optimizations
In RAD Studio 10.3, loading forms using LiveBindings or with many controls is now significantly faster. Load times decreased from thirty seconds (for a very large form) to a few seconds only.
Fix Pack Improvements
RAD Studio 10.3 Rio includes some of Andreas Hausladen's “IDE Fix Pack” fixes and improvements. Most of the incorporated fixes are focused around the IDE and include the following:
VCL Integrated Translation Architecture and Tooling
Although VCL Integrated Translation architecture and tooling are still included in 10.3, no further improvements to these tools were made and they will be removed in a future release. You should reduce the dependency on these tools and migrate to a different set of translation tools.
With the new VCL High DPI ImageList control in 10.3, developers building new VCL Windows applications or updating existing apps for high DPI displays can fully support multi-resolution, pixel perfect images on all controls, as well as any custom drawing requiring scaled images for multiple resolution monitors. You can achieve this by using the TImageCollection component in combination with the TVirtualImageList component.
These paired components separate the concept of a collection of images (where each logical image can have multiple resolutions) from a list of images at a single specific size used for a control.
TVirtualImageList is fully compatible with and is a drop-in replacement for traditional image lists, including providing a HIMAGELIST handle, and can be used by both VCL controls and any code using Windows API image list calls.
TImageCollection supports images with alpha channels, including PNGs. You can also load old-style color-keyed transparency bitmaps and there are migration tools to assist converting traditional TImageLists to the new image collection and virtual image list.
RAD Studio 10.3 includes Per Monitor V2 support for VCL. This allows VCL applications to scale correctly for all Windows scaling, and to respond to DPI scaling changes between different screens. To enable this for your application, go to Project > Options > Application > Manifest and in the DPI Awareness section choose Per Monitor V2.
10.3 increases the number of Windows APIs that VCL and FireMonkey developers can use in their applications. This includes a number of key WinRT APIs and recent Windows 10 APIs, including ready-to-use components for in-app purchases and trials in the Windows 10 Store.
WinRT API Updates
RAD Studio 10.3 includes updates to the WinRT API Object Pascal header declarations, including support for many APIs added since the first release of Windows 10. These APIs follow the same declaration model introduced in RAD Studio 10 Seattle and can be found in the following units (under the System Windows WinRT source folder):
WinAPI.ApplicationModel.Background.pas
Winapi.ApplicationModel.Contacts.pas WinAPI.ApplicationModel.Core.pas WinAPI.ApplicationModel.DataTransfer.pas WinAPI.ApplicationModel.pas Winapi.CommonNames.pas WinAPI.CommonTypes.pas WinAPI.DataRT.pas Winapi.Devices.AllJoyn.pas Winapi.Devices.Bluetooth.Advertisement.pas WinAPI.Devices.Bluetooth.pas WinAPI.Devices.Enumeration.pas Winapi.Devices.Geolocation.pas Winapi.Devices.Midi.pas WinAPI.Devices.pas Winapi.Devices.PointOfService.pas Winapi.Devices.Scanners.pas Winapi.Devices.Sensors.pas Winapi.Devices.Sms.pas WinAPI.Foundation.Collections.pas WinAPI.Foundation.pas WinAPI.Foundation.Types.pas WinAPI.Gaming.pas WinAPI.Globalization.pas WinAPI.GraphicsRT.pas WinAPI.Management.pas Winapi.Media.Devices.pas Winapi.Media.MediaProperties.pas WinAPI.Media.pas WinAPI.Networking.Connectivity.pas WinAPI.Networking.NetworkOperators.pas WinAPI.Networking.pas WinAPI.Networking.Proximity.pas Winapi.Networking.PushNotifications.pas WinAPI.Networking.Sockets.pas WinAPI.Networking.Vpn.pas Winapi.Perception.pas WinAPI.Security.Credentials.pas WinAPI.Security.Cryptography.pas WinAPI.Security.pas Winapi.ServicesRT.pas Winapi.ServicesRT.Store.pas WinAPI.Storage.pas WinAPI.Storage.Streams.pas WinAPI.SystemRT.pas WinAPI.UI.Composition.pas WinAPI.UI.Core.pas WinAPI.UI.Input.Inking.pas WinAPI.UI.Input.pas WinAPI.UI.Notifications.pas WinAPI.UI.pas WinAPI.UI.Text.pas WinAPI.UI.ViewManagement.pas WinAPI.UI.WebUI.pas WinAPI.UI.Xaml.pas WinAPI.WebRT.pas
Windows API Updates
This Windows API update includes different areas. One is for new High-DPI related APIs, including DPI process and thread awareness, DPI settings for monitors and windows, high DPI themes, and more.
Another area relates with support for the new “pen input” and WM_POINTER_xxx messages and related APIs and data structures.
10.3 also has rearranged some duplicated core type declarations. For example, PUint32 is not in System.pas. Also, some Windows handle types have been moved and have a slightly different declaration.
TWindowsStore
TWindowsStore component allows you to connect a Windows application with the Windows Store and use features such as getting a list of apps owned by the user, available add-ons, purchased add-ons, and handle trial mode.
The TWindowsStore component is supported for Windows platforms only and RAD Studio 10.3 Rio includes a VCL version and a FireMonkey version.
TWindowsStore is a component wrapper for the TWindowsStoreCore.
RAD Studio 10.3 Rio includes support for Android API version 26 development, as required by Google for new Play Store applications starting August 2018 and for updates starting November 2018. Changes include:
You must update the SDK to include a recent platform library, otherwise your Android apps won't build.
Recent versions of the Android API have changed the mechanism to request permissions. The user can call PermissionsService.RequestPermissions (from the new System.Permissions unit) and pass it a reference to a routine that will be called with the users responses, and optionally a routine to display a rationale for the requested permission. See Android Permission Model for more information.
Android Z-Order in 10.3 provides support for using FireMonkey styled controls such as buttons, labels, and checkboxes with natively rendered controls like the browser and map control on the same form without the native control covering the styled control.
10.3 includes a number of new capabilities designed to support the use of native controls together with styled FireMonkey controls on the same Android form.
One of the changes is the use of the material design theme for Android native controls in FireMonkey applications. Native controls such as TWebBrowser, TMapView, and other new native controls will use material design theme on devices running Android version 5.0 or later.
The following list contains all the controls that currently support native presentation:
RAD Studio 10.3 includes iOS 12 support for targeting devices and building App Store and Enterprise applications.
RAD Studio 10.3 includes building 32-bit applications that run on macOS 10.14 Mojave. Delphi supports targeting the 10.14 SDK.
RAD Studio 10.3 includes the following performance enhancements for RAD Server:
New EndPoint Attributes for Content-Type and Accept based mapping
To support better resource mapping, which doesn’t depend only on the URL but also on Accept and Content-Type HTTP request headers. This means you can have two distinct methods mapped to the same URL and HTTP verb, but still returning different types of data depending on the request.
HTTP Verb to Custom Method Name Mapping
In past versions of RAD Server, the system would generate custom mappings for HTTP verbs (GET, POST, etc) to method names. This remains the default, but you can also map an HTTP verb to a method with a custom name, using the new EndpointMethod attribute.
Ability to Delegate Processing of a Request to a Custom Class or Component
Add ability to RAD Server custom resources API to delegate request processing to resource module Delphi fields, which are custom endpoint publisher classes / components.
Helper Components for JSON Processing
Taking advantage of the new ability to delegate processing to a component, RAD Studio 10.3 introduces new components for simplifying the JSON processing work, particularly when database queries are involved. The components can be added to a class mapped to a RAD Server resource (or a data module), and the HTTP methods can be mapped to them without writing any code.
The Delphi RTL in 10.3 has significant performance improvements and enhanced standards compatibility for JSON and HTTP.
Several data structures (TStringList, TList, TList
function GrowCollection(OldCapacity, NewCount: Integer): Integer;
Additionally, you can customize the implementation by writing a new compatible function and calling the global SetGrowCollectionFunc procedure.
If you install a custom “grow collection function” in a runtime package, remember to set it to nil
upon exit, or the runtime might try to call the non-existent function after the packages have been unloaded.
The class has had several changes with the goal of improving its performance, including a similar change in memory growth strategy, the removal of some redundant code, and an overall implementation cleanup.
The TStringBuilder enumerator has been optimized.
There is also an additional parameter for the TStringBuilder.ToString method. The signature is ToString (UpdateCapacity: Boolean). ToString(True) will give better performance if no more modifications are expected for TStringBuilder, as it reduces the amount of data being copied.
Significant JSON processing and parsing improvements for correctness and performance.
The current implementation of SendString / AsString operations in the TTetheringAppProfile class (used for AppTethering) are limited to a length of roughly 1,400 characters. RAD Studio 10.3 includes the following changes and additions, allowing for long strings while maintaining compatibility:
It is recommended you use TTetheringAppProfile.SendString only if length of string is less than ~1.3Kb, otherwise TTetheringAppProfile.SendLongString must be used.
RAD Studio 10.3 Rio has optimized the TMemIniFile implementation. Reading and constructing a TMemIniFile is 10 to 25 times faster and consumes half of the memory. Other TMemIniFile operations are improved too and they are 50 to 100% faster compared to the previous implementation.
Also, 10.3 includes the ability to load a TMemIniFile from a stream, with two additional overloaded constructors:
These constructors parameters remain available in the class and are exposed in new properties: