Delphi 10.2(Tokyo)出來一段時間了,最重要的新特性就是支持Linux的服務端。
官網有詳細的介紹:
這里是主要的特性介紹:https://www.embarcadero.com/products/rad-studio/whats-new-in-10-2-tokyo
這里是詳細的更新清單:http://docwiki.embarcadero.com/RADStudio/Tokyo/en/What%27s_New
我使用谷歌翻譯將更新清單翻譯了一下,和各位愛好者分享。
原文我就不貼出來了,請自行查看,以下是翻譯的文字。
================翻譯文開始==================
RAD Studio 10.2東京版本包含以下新功能和改進功能。
Linux
------------------------------
RAD Studio 10.2東京提供了對Delphi語言的Linux支持。編譯器已啟用ARC,僅支持服務器端應用程序;這包括控制台應用程序,WebBroker和DataSnap應用程序,以及RAD Server開發和部署的支持。應用程序還可以通過FireDAC訪問數據。支持的Linux發行版是Ubuntu 16.04 LTS和RedHat Enterprise版本7.在RAD Studio 10.2東京的Linux支持在企業版及以上版本中可用。
Delphi Linux編譯器
64位Linux平台支持
Delphi語言支持
啟用ARC
1-based字符串
基於LLVM引擎
支持的Linux發行版
RAD Studio 10.2東京支持以下Linux發行版:
Ubuntu服務器(Ubuntu 16.04 LTS)
RedHat Enterprise Linux(版本7)
支持RTL功能
Linux文件系統訪問
線程和並行編程庫支持
內存管理
HTTP和REST庫支持HTTP調用
用於服務器應用程序的64位Linux
用於服務器應用程序的最新RAD Studio技術已獲得64位Linux支持。
FireDAC為所有支持Linux的DBMS提供Linux支持,唯一的例外是Informix。請參閱數據庫連接。
WebBroker,RAD服務器(EMS)和DataSnap支持多層服務器(獨立和Apache模塊)。
DUnitX支持。
PAServer支持。
基於Indy的客戶端和服務器支持。
FireMonkey
------------------------------------
iOS上的新系統狀態欄選項
在TForm中添加了兩個新的屬性來更改iOS上的系統狀態欄的行為:SystemStatusBar.BackgroundColor和SystemStatusBar.Visibility。
增強TMultiView
使用“已啟用”屬性關閉與TMultiView的用戶交互。
管理TMultiView中邊框外觀的新選項。
TMultiView中對接面板模式的底部和頂部對齊方式。
多線程支持TBitmap,TCanvas和TContext3D
TBitmap:完成多線程支持。可以在任何線程中創建,銷毀和修改,而無需同步。
TCanvas:支持從多個線程一次使用,但內部是序列化的。
TContext3D:支持從多個線程一次使用,但內部是串行化的
其他FireMonkey更改
添加了對以下文本控件的ICaption的支持:TText,TStyleTextObject,TActiveStyleTextObject,TTabStyleTextObject和TButtonStyleTextObject。
FMX對Windows的TWebBrowser的改進。
TEdit中附加的CharCase屬性。
重新暴露的TStringGrid事件:
OnCellClick
OnCellDoubleClick
OnDragDrop
OnDragEnter
OnDragLeave
OnDragOver
OnResized
向TListViewItem添加了TagObject和TagString屬性。
Android上的Delphi和Java線程的統一:CallInUIThread已被棄用。所有代碼現在都在Java UI Thread中運行,不需要線程同步。
ProcessMessages方法用於調用CheckSynchronize方法,該方法從Java Native線程調用回調。以前有兩個線程:Delphi UI線程和Java Native線程。 10.2中的重構工作之后,只有一個線程:Java Native線程,它接收來自Android的所有通知,並將它們轉發到Delphi事件處理程序。當它通過while循環被阻塞時,不能執行任何事件處理程序,從而防止退出循環。如果沒有代碼保存應用程序主線程,則調用回調和事件。
改進FMX.Platform.Android.pas通過增強FMX.Platform.Device.Android.pas,FMX.Platform.Logger.Android.pas,FMX.Platform.Metrics.Android.pas,FMX.Platform.SaveState.Android.pas ,FMX.Platform.Screen.Android.pas和FMX.Platform.Timer.Android.pas。
TForm的Release方法已被棄用。
Android上的ShowModal更改。
新的FireMonkey樣式
為MacOS和Android添加了新的FireMonkey樣式。訪問FireMonkey樣式:
C:\ Users \ Public \ Documents \ Embarcadero \ Studio \ 19.0 \ Styles \ MacOS \ macOSgraphite.fsf
C:\ Users \ Public \ Documents \ Embarcadero \ Studio \ 19.0 \ Styles \ Android \ AndroidWearDarkBlue.fsf
FireDAC和數據庫
------------------------------
Firebird的改進
New Direct屬性添加對Direct I / O備份功能的支持。
MySQL的改進
支持MySQL v 5.7。
支持MariaDB v 5.5或更高版本。使用FireDAC的MySQL節點連接到MariaDB。
與最近的MySQL版本5.6.x和5.7.x. Compatibilty
MySQL准備語句API:現在支持舊的API(MySQL文本協議)和PS API(MySQL准備語句協議)。
您可以使用TFDResourceOptions.DirectExecute屬性選擇所需的API。
根據所使用的API,TFDCommand.CommandIntf.CliObj屬性返回TMySQLStatement或TMySQLResult對象。
支持內部BLOB流(僅限smOpenWrite模式)。
改進了連接事務狀態和TFDConnection.InTransaction屬性的同步。此屬性允許您確定連接事務當前是否正在進行中。
其他FireDAC更改
TFDDataMove組件已從此版本中刪除,不再適用於工具選項板。改用TFDBatchMove組件。
注意:如果您需要TFDDataMove作為舊版項目,請使用FireDAC.Comp.DataMove.pas單元,可用於:
開始|程序| Embarcadero RAD Studio 10.2東京|樣品,然后導航到:
對象Pascal \ Comp Layer \ TFDBatchMove \ DataMove_Deprecated
TFDBatchMove已經優化。作為副作用,TFDBatchMoveMappingItem的DestValue和SourceValue屬性不再可用。
TFDMSAccessService現在支持Microsoft Access 2007或更高版本。
增強TFDMemTable組件在設計時編輯TFDMemTable數據集。現在,TFDMemTable上下文菜單提供了Edit DataSet ...項目,允許您編輯組件數據並將其保存到表單中。數據在運行時可用。
注意:在使用Edit DataSet ...之前,應該為數據集字段TFDMemTable.FieldDefs或創建持久字段指定字段定義。
數據庫改進
VCL TDBImage直接支持JPEG和PNG圖形格式。
支持BlobFields的顯示選項。
對TField類的直接GUID訪問。
RTL
---------------------------------
HTTP客戶端
HTTP客戶端庫提供對64位Linux的支持。
改進了HTTP客戶端中的異步支持
RTL支持64位Linux
RAD Studio 10.2東京提供使用標准系統功能,流和IOUtils單元的Linux文件系統支持。它還為64位Linux提供標准RTL路徑功能支持。
應用程序捆綁改進
應用程序綁定獲得以下功能:
用於TTetheringManager和TTetheringProfile的新SynchronizeEvents屬性來控制與主線程的事件同步。因此,管理員和配置文件現在可以控制他們的事件處理程序是否在主線程上執行。
改進了對日志過濾的支持:添加了更多的日志消息。
新的和改進的散列函數
System.Hash單元中的以下方法現在接受流或字符串作為輸入參數:
THashMD5.GetHashString
THashMD5.GetHashBytes
THASHSHA1.GetHashString
。。
THashSHA2.GetHashString
THashSHA2.GetHashBytes
System.Hash單元具有以下新方法,可以從文件獲取散列摘要:
THashMD5.GetHashBytesFromFile
THashMD5.GetHashStringFromFile
。。。。。
THashSHA1.GetHashStringFromFile
THASHSHA2.GetHashBytesFromFile
THashSHA2.GetHashStringFromFile
移動平台
------------------------------------
改進的移動的C ++包
RAD Studio 10.2東京靜態地鏈接iOS和Android的C ++包。以前版本的RAD Studio生成了C ++包的擴展名為.so的文件,但實際上並不是動態庫。 RAD Studio 10.2 Tokyo生成具有正確文件擴展名(.a)的C ++包。如果您靜態鏈接到.so包,則可能需要更改以鏈接到新的文件名。
RAD服務器多租戶支持
通過Multi-Tenancy支持,具有單個RAD Server數據庫連接的單個RAD Server實例可以支持多個獨立的租戶。每個租戶都有一套獨特的RAD服務器資源,包括用戶,組,安裝,邊緣模塊和其他數據。所有租戶都有安裝在EMS服務器中的自定義資源。另外,作為管理員,您可以創建新的租戶,編輯現有的租戶,添加,編輯或刪除租戶的詳細信息,指定租戶是否處於活動狀態,並刪除不需要的租戶。
C ++編譯器
----------------------------------
更好地支持調試
在Clang增強編譯器中:
現在,使用Win32和Win64的Clang增強編譯器構建的代碼中的局部變量現在可以在手表或“本地變量”視圖中進行評估。
當代碼在方法中的不同作用域中具有兩個具有相同名稱的局部變量時,變量評估現在可以解析並根據當前位置顯示正確的變量。
類名現在總是顯示在調用堆棧中。
(Clang-enhanced Win32)支持用於調試信息的外部類型文件,從而減少為許多編譯單元(例如VCL類型)中使用的常見類型創建的調試信息的重復。這大大減少了構建時生成的調試信息的大小。
更好的代碼
在Clang增強編譯器中:
-O1和-O2優化級別的代碼已經得到改進,包括解決所有已知問題。
新支持-O3。 Clang增強型Win32和Win64編譯器支持-O3,這是一個強大的優化級別,可能會在一些情況下雙重編譯代碼性能。
移動平台支持
可以構建C ++ Android應用程序,無需NDK的特定版本。
鏈接器
C ++鏈接器有很大的改進:
改進資源處理來解決堆錯誤,包括內存不足,VIRDEF,dwarf_str等。
鏈接器現在可以使用高達4GiB的內存;它不再局限於2GiB。
鏈接器選項已被擴展,允許您為特定類型的調試或鏈接器數據設置資源分配大小。
雖然大多數項目不是必需的,但這對於非常大的項目或者產生異常數量的鏈接數據的項目(包括調試信息)非常有用。如果發生鏈接器錯誤,可以通過將選項定制到項目的行為來解決。
異常處理
對異常處理進行顯着的質量改進,解決與內存泄漏有關的錯誤。
IDE
---------------------------------
Delphi的代碼洞察和代碼完成現在正確地處理靜態和動態數組。
“查找文件”對話框適用於具有高DPI的屏幕。
支持不同DPI的設計和開放形式得到改進。
視圖菜單已重新排列。已經將工具窗口(如對象檢查器,結構,消息等)移動到現有Debug Windows子菜單下方的“工具Windows”子菜單中,並且新的“編輯器”子菜單包含編輯器上下文菜單中的多個編輯器操作和有用功能。已經移動了其他物品以保持相關物品相鄰。
工具Windows子菜單編輯器子菜單
10.2查看工具Windows.png 10.2 View Editor.png
項目管理器中的代碼編輯器選項卡和文件的上下文菜單現在具有“在資源管理器中顯示”菜單項,它將在資源管理器中顯示文件的位置。
項目的清單文件支持現在支持多個執行級別:作為Invoker,最高可用和需要管理員,還允許設置UI訪問標志。
即使網絡負載較高或網絡連接不足,IDE加載速度也應該很快。
支持建設非常大型的項目組,如擁有一百多個項目的項目組,得到了改善。
調試器
iOS調試器
完全支持iOS10調試(來自10.1柏林修復程序)
完全支持iOS Simulator調試(來自10.1柏林修復程序) - 僅限Delphi。
在iOS調試器中支持編寫Delphi字符串值
評估字符數組給出了預期的結果
結束調試會話的錯誤(也在macOS上)被解決
macOS調試器
完全支持macOS Sierra調試(來自10.1柏林修復程序)
結束調試會話的錯誤(也在iOS上)被解決
Linux調試器
支持在Linux上調試(僅適用於Delphi)
VCL
--------------------------------
高DPI修復
改進高DPI支持:
現在,正確地調整窗體邊界以響應WM_DPICHANGED消息,這意味着TForm.AutoScroll工作正常,以及表單的上/左位置
當系統具有多個具有不同DPI的監視器時,窗體以正確的縮放因子打開
TTabSheet和TPageControl,以及放置在標簽頁或頁面控件上的控件
ActionMainMenuBar將表單移動到具有不同DPI的顯示器上時
VCL菜單(主菜單和彈出菜單)現在可以在高DPI顯示器上正確顯示
TStatusBar的高度在高DPI中保持正確
消息對話框的圖標現在可以正確縮放
當使用不同DPI的顯示器之間移動表單時,錨定的控件現在將保持在預期位置
TCheckBox和TRadioButton正確繪制
表單繼承的幾個問題,包括該控件現在使用正確的字體大小放置在面板上,ParentFont在繼承的表單上設置為true,並且TListView列大小在繼承的表單上保持不變。
其他改進
GetIt安裝程序
增強並行下載。
雲(Cloud)
通過更新的API改進了Azure和AWS支持。
編譯器
Delphi命令行編譯器現在已啟用大內存地址,允許您從命令行編譯較大的應用程序(並在IDE中調用時將編譯器的可用內存匹配)。
假定動態數組是托管類型,涉及引用計數和相關的輔助函數生成,則不允許使用@運算符轉換數組元素,因為它會導致內存損壞。在開發人員的責任下,仍然允許使用明確的轉換操作執行類似的操作。
iOS 10模擬器,設備和macOS
完全支持iOS 10,包括iOS 10 32位和64位在設備上的調試,模擬器支持(僅限Delphi)和macOS Sierra支持。
================翻譯文結束==================