RAD Studio 10.3 來了
官方原版下載連結:HTTP FTP
官方更新說明:http://docwiki.embarcadero.com/RADStudio/Rio/en/What's_New
【官方更新說明簡譯】
1、Delphi 語言
支援內聯變數和內聯變數的型別推斷,說明參考上一篇
Linux 的記憶體管理已經不再使用 ARC 模型了,改成和 Windows 一樣,NEXTGEN 定義在 Linux 平臺上已經無效了
Linux 平臺支援 AnsiString / AnsiChar 了,不過官方提示需要注意 Linux 和 Windows 的 ANSI 內碼表並不一致。
2、C++
Win32 的 C++ 編譯器支援 C++ 17 了,而且已經變為預設設定(原來是 BCC32),更快的程式碼,更好的第三方 C++ 庫相容。
C++ 編譯器可以設定向後相容 C++ 14/11/98/03
使用 cquery(需要安裝 Win64,只帶了 64 位版本) 增強 C++ 的程式碼完成( Code completion),比以前版本更快和更好用,現在這個程式碼完成使用非同步模式實現了,輸入不會有卡頓的感覺。
Win64 下更好的數學效能,許多數學函式重新實現後平均比以前快了兩倍 。
支援錯誤檢查(Error Insight)功能,可以像 Delphi 一樣隨時預覽程式碼中的錯誤(紅色下劃線)
支援除錯優化過的構建(也就是 Release 版)。
支援通過 GetIt 安裝大量的 C++ 庫。
3、公共部分
修正了 C++/Delphi ABI 的相容性
IDE 增加了兩個新的主題,感覺更現代,可讀性更好。
多個關鍵對話方塊變動,以更明確及增加可讀性
工程和 IDE 選項對話方塊
主視窗
新建專案對話方塊
編譯對話方塊
GetIt 包管理器對話方塊
窗體載入 / LiveBindings 設計期優化,速度大大提升
知名的 Andreas Hausladen 的 “IDE Fix Pack” 已經被整合在新的IDE裡了
VCL 整合的翻譯架構和工具雖然仍然存在,但官方告訴你,活不長了
VCL
通過使用 TVirtualImageList 和 TImageCollection 來支援高清圖片列表,所有的控制元件都支援多解析度了。TVirtualImageList 控制代碼提供一個 HIMAGELIST 控制代碼,可以被 VCL 控制元件和 相關 Windows API 使用
Per Monitor V2 支援:允許程式根據當前螢幕的 DPI 進行縮放。要啟用這個功能 ,進入 Project > Options > Application > Manifest 中,設定 DPI Awareness 為 Per Monitor V2
Win 10 功能增強:增加了一堆 ,VCL 和 FMX 都能用
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
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 更新:高 DPI 和手寫筆相關介面,以及重複的宣告重新整理了下。
新增 TWindowsStore 元件來支援 Windows 應用商店。
TDirect2DCanvas 支援顏色字型、WM_POINTER 相關訊息和介面,共享通訊薄擴充套件
FireMonkey
Android API 26 支援,以便符合谷歌應用商店要求
manifest 變更
新的許可權模型
Android Z 順序和原生控制元件支援
iOS 12 支援,可以編譯併發布到蘋果應用商店了
支援 MacOS 10.14 Mojave
支援 Unicode 表情
FireDAC 和資料庫
一堆新版本資料庫支援(不列了,反正出名的好象都支援了)
增加 TFDBatchMoveJSONWriter
優化 TFDBatchMove 和關聯元件
資料庫提升
TClientDataSet 增加 IncludeBlobsInDelta 屬性
TDSRestConnection 增加 SecureProtocols 屬性,而且 REST 明確設定 Content-Type=application/json
REST 增加了一堆事件和相關介面/屬性
THttpClient 增強在 Windows 下的效能,並增加了新的介面
雲增強:支援 Azure 的一堆東西,與你我無關。
RAD Server:估計國內沒誰用,略
RTL
JSON 和 HTTP 效能的提升和相容性增強
TStringList, TList, TList <T>, TQueue<T>, TStack<T> 加入 GrowCollection 優化,不再是簡單的乘2,使用者可以呼叫 Sysutils 的 SetGrowCollectionFunc 來自定義這一過程。
TStringBuilder 效能優化
JSON 解析效能和正確性增強
列表相關的提升:
TDictionary 增加 TryAdd
TObjectList 增加 ExtractAt
TList IndexOf 效能增強
優化 TList, TStrings, TComponent, TCollection, TList<> 的列舉器,現在空的 for in 迴圈比以前快 2.5~4 倍
其它
zlib 升級到 1.2.8
PCRE 升級到 8.42 並且在 Windows 上包含 UTF-16 支援
AppTethering 支援長字串
TMemoryIniFile 優化,更小的記憶體佔用,更快的處理速度(讀取和構造提升10~25 倍,其它有 50% ~100% 提升)