RAD Studio 10.4是多年来对Delphi代码工具的最大最大改进,它使用Delphi实现的语言服务器协议(LSP)提供了Code Insight。LSP是一种在单独的过程中计算代码完成,导航或类似结果的技术。这意味着IDE不会在完成时阻塞,并且Code Insight将提供准确的结果。在处理具有数百万行代码的大型项目时,10.4可大大提高开发人员的工作效率。
作为Delphi语言的主要语言,Delphi记录类型现在支持自定义初始化,完成和复制操作。开发人员现在可以通过编写将在各个步骤执行的代码来自定义记录的创建,复制和销毁方式。这为Delphi中的记录增加了额外的功能,Delphi是一种用于实现比类更好的效率的构造。
现在,Delphi内存管理使用对象内存管理的经典实现在所有受支持的平台(移动,桌面和服务器)之间进行了统一。与自动引用计数(ARC)相比,它与现有代码更好地兼容,并且为组件,库和最终用户应用程序提供了更简单的编码。ARC模型保留用于所有平台的字符串管理和接口类型引用。
对于C ++,此更改意味着C ++中的Delphi样式类的创建和删除与所有分配堆的C ++类一样,遵循常规的内存管理,从而大大降低了复杂性。
在10.4中,我们已经将众多流行的C ++库移植到C ++ Builder中,从而为在C ++ Builder中使用提供了优化的支持。它包括ZeroMQ,SDL2,SOCI,libSIMDpp和Nematode等库,以及已经受支持的其他库(例如Eigen),可通过GetIt程序包管理器下载。
10.4引入了一个新的Windows 64位C ++调试器。该调试器基于LLDB,在调试64位应用程序时引入了显着的稳定性改进,以及一项关键的新功能,可帮助评估和检查C ++和Delphi字符串等类型以及包括std :: vector和std :: map等在内的STL集合。 。此外,为应用程序生成的调试信息使用其他调试格式。最终结果是更稳定,功能更丰富的调试体验,以及在调试时进行更强大的检查和评估。
Dinkumware对STL进行了大量改进
基于为提高与通用C ++库的兼容性所做的工作,改进了几个关键的RTL方法和领域
CMake支持的几项改进
大量改善质量和稳定性
在10.4版中,VCL样式体系结构已得到显着扩展,以支持High DPI和4K监视器。现在,VCL表单上的所有UI控件都会自动缩放,以适合显示该表单的监视器的正确分辨率。
样式API已经过全面修订,以支持高DPI样式。可以从多尺度版本的库中选择每个UI元素,并缩放到任何DPI,从而在所有监视器上显示清晰的UI元素。
我们已经更新了大量的内置和高级VCL样式,以支持新的High-DPI样式模式,使您可以为任何显示器设计视觉效果出色的应用程序。
VCL开发人员现在可以在单个应用程序中使用不同形式的多种VCL样式,甚至可以在同一表单中使用不同的可视控件。这还包括使用默认平台主题样式化任何元素的支持。除了在样式上提供更大的灵活性之外,这还使您能够在样式化的VCL应用程序中使用第三方未样式化的控件。
10.4包括一个新的VCL Web浏览器组件TEdgeBrowser,它使用Microsoft的基于Chromium的新Edge WebView2。与基于Internet Explorer的旧TWebBrowser相比,它提供了更加现代的HTML引擎和安全的引擎。
此外,经典的TWebBrowser组件已得到扩展,允许现有应用程序中的浏览器控件使用现有Internet Explorer或Edge浏览器进行显示,具体取决于系统上可用的浏览器。
新的TTitleBarPanel控件和TForm.CustomTitleBar属性允许您自定义VCL表单的本机Windows标题栏。您可以将VCL控件放置在Windows标题栏上,控制元素的默认绘制,例如窗口图标和标题,在“最小化”,“最大化”和“关闭”按钮附近添加新的自定义系统按钮,甚至完全自定义绘制标题栏。这使您可以构建现代的增强标题栏,类似于Office,Explorer,Google Chrome或其他应用程序例如:360安全卫士等界面。
有一个新的TVirtualImage组件,该组件支持多种分辨率和DPI缩放比例,使您可以通过替换经典的TImage组件来获得高质量的图像缩放比例和显示。
我们增强了许多API声明并添加了其他声明,以进一步改善RAD Studio提供的出色平台集成。
Metal驱动程序GPU对macOS和iOS的支持:在macOS平台(Delphi)上,您现在可以针对Metal API而不是旧的Quartz API和OpenGL(Apple弃用)构建应用程序。FireMonkey Metal支持为将来的需求提供了平稳的迁移,并为屏幕渲染提供了更好的性能。在10.4中,我们还添加了对iOS(Delphi和C ++ Builder)上的Metal API的支持。
除了支持最新的iOS SDK外,使用RAD Studio 10.4的开发人员还可以通过内置的IDE支持来满足Apple新的启动屏幕故事板要求。
此版本包括Windows平台上样式为TMemo组件的新FMX实现,为IME提供了更好的支持和其他增强功能。
Enterprise和Architect Edition客户可以利用FMXLinux集成来构建Linux GUI应用程序。
iOS的TWebBrowser控件现在使用WKWebView API实现
Media Player控件的macOS实现现已使用AVFoundation
使用FireMonkey框架的开发人员可以针对支持的操作系统的最新版本。
增强的并行编程库支持:并行编程库(PPL)使您的应用程序能够在现代多核CPU中并行运行任务。在10.4中,我们对PPL库进行了许多性能和稳定性增强。
在10.4中,我们对FireDAC数据库访问库进行了一些常规增强,并更新了FireBird,PostgreSQL和SQLite的驱动程序。对于SQLite嵌入式数据库,我们现在提供了在静态或动态链接之间进行选择的功能。
我们使用其他HTTPS功能扩展了HTTP和REST客户端库,并扩展了对Amazon AWS服务的支持。
LiveBindings性能和功能增强
在10.4版中,我们对VCL和FireMonkey应用程序的Visual LiveBindings体系结构和实现进行了许多增强,尤其着重于性能。结果,某些LiveBindings操作的速度提高了一个数量级。
其他改进包括绑定到TDataSet的VCL和FMX控件自动适应关联的TField属性(如DisplayWidth,Alignment和EditMask)的功能。
GetIt软件包管理器增强功能
IDE中的GetIt软件包管理器在10.4中进行了重大改进。这包括显示每个程序包的发布日期,并可以按发布日期对它们进行排序;已安装软件包的新过滤选项,可用于更新订阅客户的专有内容,可用于其更新的软件包;和更多。
用于在线和离线安装的统一安装程序
在10.4中,我们将使用GetIt安装程序技术引入统一的安装程序。这提供了一个单一安装程序,该安装程序同时支持联机(通过Internet连接)安装和脱机安装(通过ISO)。现在,联机和脱机安装都允许您选择要安装的RAD Studio初始功能集,例如对编程语言和目标平台的特定组合的支持,语言支持或帮助资源,并可以随时添加或删除它们。
代码编辑器在生产率方面进行了一些改进,包括新设置,例如编辑器状态栏上的文件代码页和字体大小。
IDE和键对话框使用新的TCustomTitleBar控件在标题栏上实现搜索和设置,从而启用本机外观和Windows DWM行为。