The RAD Studio 10.2 Tokyo release contains the following new and improved features.
Linux
RAD Studio 10.2 东京在 Delphi 语言中提供 Linux 支持(注:C++ Builder 版本的支持延期了),编译器启用 ARC 支持并且仅支持服务器端应用;这包括控制台应用、WebBroker 和 DataSnap 应用,以及对 RAD Server 开发和发布的支持。应用也可以通过 FireDAC 访问数据。支持的 Linux 包括 Ubuntu 16.04 LTS 和 RedHat Enterprise 7。Linux 支持包含在 RAD Studio 10.2 东京企业版以上的版本中。
Delphi Linux 编译器
- 64 位 Linux 平台支持
- Delphi 语言支持
- ARC 支持
- 基于1 开始的字符串
- 基于 LLVM 引擎
支持的 Linux 发行版
RAD Studio 10.2 支持以下 Linux 发行版:
- Ubuntu Server (Ubuntu 16.04 LTS)
- RedHat Enterprise Linux (版本 7)
RTL 支持功能
- Linux 文件系统访问
- 线程和并行编程库支持
- 内存管理
- HTTP 调用提供对HTTP 和 REST 库支持
64 位 Linux 服务器应用
64位 Linux 服务器应用拥有最新的 RAD Studio 技术支持.
- FireDAC 提供对除了Informix 所有 Linux 兼容的数据库管理系统的支持f。查看 数据库连接
- WebBroker, RAD Server (EMS) 和 DataSnap 对多层服务器(独立或 Apache 模块)支持
- DUnitX 支持
- PAServer 支持
- 基于 Indy 的客户端和服务器端支持
FireMonkey
新的 iOS 状态栏选项
两个新的属性被添加到 TForm 来在 iOS 上改系统状态栏的行为: SystemStatusBar.BackgroundColor 和 SystemStatusBar.Visibility。
TMultiView 增强
- 通过 Enabled 属性关闭 TMultiView 的用户交互
- 在 TMultiView 中通过新选项管理边界外观
- 在TMultiView 中嵌入面板模式支持底部和上部对齐
对 TBitmap, TCanvas and TContext3D 的多线程支持
- TBitmap: 完整的多线程支持。可以在任意线程中创建、销毁、修改而不需要同步。
- TCanvas: 支持在多个线程中同时使用,实际内部序列化。
- TContext3D: 支持在多个线程中同时使用,实际内部序列化。
其它 FMX 变更
- 为下面的文本控件添加 ICaption 支持: TText, TStyleTextObject, TActiveStyleTextObject, TTabStyleTextObject 和TButtonStyleTextObject。
- FMX 实现了 Windows 版的 TWebBrowser 。
- TEdit 增加 CharCase 属性。
- 重新发布 TStringGrid 事件。
- 为 TListViewItem 增加 TagObject 和TagString 属性。
- 统一 Delphi 和 Java 在 Android 上的线程:CallInUIThread 已经被废弃。所有的代码现在运行在 Java UI 线程,消除线程同步需要。
- ProcessMessages 方法用来调用 CheckSynchronize 方法,它被用来调用那些从 Java 原生线程中的回调。这里使用了两个线程:Delphi UI 线程和 Java 原生线程。在 10.2 重构后,这里只有一个线程:Java 原生线程,它接收所有来自 Android 的通知并转发它们给 Delphi 的事件响应者。当它被 while 循环阻塞,没有事件响应者可以被执行,防止从循环中退中。回调和事件通常在没有代码 占用主线程时调用。
- 通过增强 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 增强 FMX.Platform.Android.pas。
- TForm 的 Release 方法已经被废弃。
- Android 上的 ShowModal 变更。
新的 FireMonkey 样式
新的 FireMonkey 样式已经被添加到 macOS 和 Android。它们位于:
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 增强
- 新增 Direct 属性以支持 Direct I/O 备份特性。
MySQL 增强
- 支持 MySQL v 5.7.
- 支持 MariaDB v 5.5 +。使用 FireDAC 的 MySQL 结点来连接 MariaDB.
- 兼容最近的 MySQL 5.6.x 和 5.7.x.
- MySQL Prepared 语句 API: 同时支持旧 API (MySQL 文本协议) 和 PS API (MySQL 准备语句协议) 。
- 你可以通过 TFDResourceOptions.DirectExecute 属性来选择 API。
- 依赖于使用的 API, TFDCommand.CommandIntf.CliObj 属性返回一个 TMySQLStatement 或TMySQLResult 对象。
- 支持内部二进制流(仅在smOpenWrite模式下)。
- 增强对连接事务状态和 TFDConnection.InTransaction 的同步。这个属性允许你确定一个连接是否处于事务中。
其它 FireDAC 变更
- TFDDataMove 被删除,换成使用 TFDBatchMove 。
- TFDBatchMove 已经被优化。影响就是 TFDBatchMoveMappingItem 的
DestValue
和SourceValue
属性没有了。 - TFDMSAccessService 现在支持 Microsoft Access 2007 +
- TFDMemTable 组件增强在设计器编辑数据集。现在 TFDMemTable 上下文菜单提供 Edit DataSet… 允许你编辑组件数据并保存到窗体。这些数据在运行时可用。
数据库增强
- VCL TDBImage 直接支持 JPEG 和 PNG 图形格式。
- 支持二进制字段显示选项。
- TField 类型支持 GUID 直接访问。
RTL
HTTP Client
HTTP Client 提供 64 位 Linux 支持.
增强 HTTP 客户端异步支持。
RTL 对 64-bit Linux 支持
RAD Studio 10.2 东京通过标准系统函数、流和 IOUtils 单元提供 Linux 文件系统支持。
App Tethering 提供
App tethering 拥有以下新功能
TTetheringManager 和TTetheringProfile 增加新的SynchronizeEvents
属性来控制事件在主线程同步。所以现在可以在主线程和后台线程中处理事件。- 增强日志过滤支持:增加更多日志消息。
新增和增强哈希函数
System.Hash 单元的下述函数接受流或字符串做为输入参数:
- THashMD5.GetHashString
- THashMD5.GetHashBytes
- THashSHA1.GetHashString
- THashSHA1.GetHashBytes
- THashSHA2.GetHashString
- THashSHA2.GetHashBytes
System.Hash 单元增加下述函数允许你获取一个文件的哈希:
- THashMD5.GetHashBytesFromFile
- THashMD5.GetHashStringFromFile
- THashSHA1.GetHashBytesFromFile
- THashSHA1.GetHashStringFromFile
- THashSHA2.GetHashBytesFromFile
- THashSHA2.GetHashStringFromFile
移动平台
C++ 移动开发增强
RAD Studio 10.2 东京支持静态链接 iOS 和 Android 的 C++ 包(以前是生成动态的so调用,现在可以直接生成.a文件)。
RAD Server Multi-Tenancy 支持
忽略,有兴趣的看原版
C++ 编译器
更好的调试支持
在 Clang 增强版编译器中:
- 局部变量总是可以通过 Watches 和 Local Variables 查看和计算
- Local Variables 可以正确显示不同层级重名的变量值
- 类名现在总是显示的 call stack 中。
- Win32:支持外部类型文件提供调试信息,这可以有效的减少编译时生成的调试信息大小。
更好的代码生成
在 Clang 增强版编译器中:
- -O1 和 -O2 优化级别已经提升,包含解决全部已知问题。
- 新增 -O3 支持。Win32 和 Win64 支持,在特定场景下可以提升两倍。
移动平台支持
- C++ Android 应用可以不需要指定 NDK 编译编译。
链接器
- C++ 链接器增强:
- 增强堆错误定位资源的处理,包括内存溢出、 VIRDEF、 dwarf_str 及其它。
- 链接器现在可以使用超过 4GB 内存,不再只限于2GB。
- 链接器选项扩展支持你设置特定类型调试资源或链接数据的分配大小。
异常处理
-
异常处理的质量改进,解决与内存泄漏有关的错误。
IDE
- Delphi 的 Code Insight 和 Code Completion 现在可以正确处理静态和动态数组。
- 在文件中查找对话框可以在高 DPI 下工作。
- 在不同 DPI 下设计和打开窗体功能增强。
- View 菜单 已经被重排,省略翻译直接看图。
- 工程管理器和代码编辑器右键菜单支持在资源管理器中显示选项。
- 工程的 manifest 文件现在支持不同的运行级别:As Invoker, Highest Available, and Require Administrator, 以及允许设置 UI Access 标记。
- IDE 加载速度增强。
- 大工程组的编译增强。
调试器
iOS 调试器
- 对 iOS10 调试的完整支持。
- 仅 Delphi:对 iOS 模拟器调试的完整支持。
- 在 iOS 调试器中写入 Delphi 字符串值支持
- 计算字符串数组给出期望的结果
- 错误结束调试会话问题已解解决(macOS 上也是)
macOS 调试器
- 对 macOS Sierra 调试的完整支持
- 错误结束调试会话问题已解解决(iOS 上也是)
Linux 调试器
- Delphi:支持在 Linux 上调试
VCL
高 DPI 修复
细节略
其它增强
GetIt 安装器
- 增强并行下载
Cloud
- 增强 Azure 和 AWS 支持
Compilers
- 略
iOS 10 模拟器、 设备和 macOS
- 完支持 iOS 10, 包括iOS 10 32 位和 64 位真机调试,模拟器支持(仅 Delphi)和 macOS Sierra 支持。