FastReport 是功能齐全的报表控件,可以帮助开发者可以快速并高效地为.NET,VCL,COM,ActiveX应用程序添加报表支持,由于其独特的编程原则,现在已经成为了Delphi平台最优秀的报表控件,支持将编程开发中的报表信息输出为TXT、PDF等多种文件格式,是编程开发人员必备的报表工具。
FastReport VCL 是一个附加组件,用于快速有效地生成报表。FastReport提供了开发报表所需的所有工具,包括可视报表设计器、报表core和预览窗口。
重要更新:报表控件FastReport VCL 不再支持低于 2010 的 Delphi 版本,主要有以下原因。
尽管我们从 1995 年就开始使用 Delphi,但它在不断发展,并且在程序员的工作中具有不可否认的优势。Delphi 的 FastReport 产品也不会停滞不前,我们尝试在每个版本中为开发人员提供新的和更现代的功能。您可能想知道:为什么要更新 Delphi,新版本的优势是什么?其实主要是提高高端应用程序开发生产力的新功能。在本文中,我们将展示Delphi 自版本 7 以来的主要变化,并回答有关 Delphi 旧版本支持终止的问题。
1.FastReport VCL产品不再支持哪些版本?
- Borland Delphi 7
- Borland Delphi 8
- Borland Delphi 2005
- Borland Delphi 2006
- CodeGear Delphi 2007
- Delphi 2009
对FastReport VCL 2023.2的保证支持仅从Delphi 2010开始提供。
2.为什么我们要弃用 2010 以下的旧版本的 Delphi,这种弃用对开发的阻碍是什么?
报告生成器的 VCL 开发的一个重要阶段是结束对过时的非 Unicode 版本的支持。它将帮助我们更加集中地改进 FastReport,并在每个版本中引入更多现代功能。自 2023.1 发布以来,FastReport VCL 支持从 2010 开始的 Delphi 版本。
几个因素影响了这个决定:
- 旧版本中缺乏原生 Unicode 支持,这对本地化以及使用字符串和文本施加了各种限制;
- 需要支持许多在使用新的 Delphi 版本时变得不必要的功能;
- 没有泛型和匿名方法,这会增加人力资源的成本来支持可以在标准 IDE 模块上更容易实现的功能;
- 不可能使用新的 VCL 组件,其独立实现会增加开发时间。他们的绩效管理也需要资源;
3.迁移到2010以上版本的Delphi有什么好处,我们可以使用哪些技术?
多个模块的命名空间、for...in...do 循环、函数的内联指令以及其他代码优化
在 Delphi 中,编译器允许过程和函数具有内联指令,从而提高性能。当过程或函数满足特定条件时,编译器会在调用的确切位置插入代码,而不是生成常规调用。内联方法可以优化性能并生成运行速度更快但代价是增加代码大小的代码。在这种情况下,编译器生成的二进制文件会更大。与其他指令一样,内联指令用于声明和定义函数和过程。
快速代码重构
代码重构是在不改变其功能的情况下重构和修改现有代码。重构可以加速、简化和提高应用程序代码的性能和可读性。
Delphi 中的重构服务分析并执行代码重新分发操作。该服务还在预览模式和代码编辑器底部的重构面板中显示更改。重构候选项显示为树节点,您可以打开这些节点以查看要重构的其他项目。警告和错误也显示在此面板上。您可以通过上下文和主菜单访问重构服务。
单元测试
新版本的 Delphi 包括用于创建和运行自动化测试的开源 DUnit 测试框架。该框架有助于为应用程序类和方法创建测试。与重构一起使用时,此功能可以提高应用程序的稳定性。
由于项目源代码更改时及时启动测试,您可以在早期开发阶段发现并修复错误。
在语言、库和开发环境级别对 Unicode 的端到端支持
Unicode是一种标准,允许您获得计算机表示并使用任何书写系统。
- Unicode 标准:5.0 版。5. 编辑。Addison-Wesley Professional, 2006. 1472p
可以使用 Unicode 表示不同语言的大量字符集,例如亚洲变体。最常见的编码是 UTF(Unicode 转换格式)和 UCS(通用字符集)。
新版 Delphi 的重要变化之一是字符串类型现在基于 UNICODE。鉴于字符串的大小(以字节为单位),基于 ANSI 标准及更高版本的AnsiString 和 WideString 等数据类型仍然可用。
Unicode 支持的更改列表:
- 字符串现在表示 UnicodeString,而不是 AnsiString
- Char 现在表示 WideChar(2 个字节,而不是 1 个字节),这是一个 UTF-16 字符
- PChar 表示 PWideChar
- AnsiString 代表“旧”字符串类型
未改变:
- 字符串
- 宽字符串
- AnsiChar, PAnsiChar
- 短字符串包含 AnsiChar 元素
- 隐式转换继续工作
活动代码页控制模式(ANSI 或 Unicode),并且仍然支持 ANSI 字符串。
不依赖于字符大小的操作:
- 字符串连接
- 处理字符串的标准函数。例如,长度、副本、位置等。
- 运营商。例如,<string> <comparison> <string>、CompareStr()、CompareText() 等。
- FillChar(<结构或内存>)
- 窗口应用程序接口
许多公司分发他们的应用程序和/或与 Unicode 支持至关重要的国家/地区交换信息。
泛型
“通用”是通用类型的术语。它是指使用语言语法在某些容器类型(例如数组或集合)中预定义数据类型。泛型允许您编写适用于特定数据类型(即类或类方法)的通用代码。您还可以在运行时指定类型。
自 Delphi 2009 以来引入了对泛型的支持。
Delphi RTL 包括开箱即用的集合实现(在“Generics.Collections”模块中定义):
- TList
- TQueue
- TStack
- TDictionary
- TObjectList
- TObjectQueue
- TObjectDictionary
- TThreadedQueue
匿名方法
匿名方法是没有关联名称的过程或函数。匿名方法是代码的一部分,可以与变量关联或用作其他方法的参数。此外,匿名方法可以在定义它们的上下文中使用变量。声明和使用匿名方法不需要复杂的语法。语法类似于其他编程语言中的闭包。
新的 VCL 组件(自定义提示、功能区控件等)
直接二维支持
Direct2D API——设计用于与 GDI、GDI+ 和 Direct3D 交互的程序接口。Direct2D 将所有绘图操作重定向到 GPU(图形处理单元)而不是 CPU。它为应用程序提供了更多资源。从 Microsoft Windows 7 开始,添加了使用 Direct2D 的功能:用于硬件加速 2D 图形输出的 API,允许在显示 2D 对象、位图和文本时提高性能。
新版本的 Delphi 在 IDE 级别支持 Direct2D。
IDE Insight、源代码格式化程序、搜索任务栏
添加了新的 IDE Insight 服务,允许您输入名称并从合适的选项列表中选择项目选项和开发人员首选项。IDE Insight 输入字段包括命令、文件、组件和项目等多个类别的选项。
Delphi 环境默认根据模板提供代码格式化。
此外,IDE 现在提供可通过启用 CTRL+D 激活的完全可定制的代码格式化服务。它确保模块根据预定义的设置进行格式化。此外,您可以使用项目管理器格式化项目中包含的所有模块。
后台编译
在Delphi 2010中,可以在后台进行编译。因此,您可以在单独或并行线程中运行编译过程,并在编译项目时继续在 IDE 中工作。例如,在编译期间,您可以编辑文件并设置或更改断点。
扩展RTTI
运行时类型识别 (RTTI) 提供有关对象的信息,允许它们在应用程序内进行交互。在使用对象检查器、代码编辑器和建模工具时,Delphi IDE 是另一个很好的 RTTI 用例。
其他编程语言的发展改变了我们的编程方式,而 Java 和 .NET 应用程序完美地展示了这些创新,因为现代编程语言提供了新级别的动态交互。由于 Delphi 对 Win32 的广泛 RTTI 支持,Delphi 2010 现在拥有 .NET 和 Java 的所有功能。新的 RTTI 系统 (RTTI.pas) 是完全面向对象的,允许您在对象之间创建和实现更多的动态交互。
运算符重载
在新版本的 Delphi 中,您可以重载记录中的某些函数或“运算符”。操作数函数的名称对应于源代码中的符号表示。
班级助手
“助手”是一种类,它通过将附加方法和属性与另一个类相关联来引入它们。这些方法和属性可以在关联(或派生)类的上下文中使用。类助手是一种在不继承类的情况下扩展类的方法。只有当编译器最终确定标识符名称时,“helper”类才会引入额外的作用域。
严格私有和严格保护
较新版本的 Delphi 有两个选项可以控制类属性的可见性:strict private 和 strict protected。
严格私有:类属性仅在声明它们的类中可见。这些属性对于在同一模块中声明的方法或那些不属于该类的方法是不可见的。
严格保护:指定后代可以访问类属性。
线程中的断点,“冻结/解冻”线程
新的内存管理器和新的 RTL 特性
改进了一些 RTL 功能以提高性能。用于 Win32 应用程序的新 FASTMM 内存管理器允许 Delphi 2006 应用程序更好地执行并通过在代码中的任何位置声明 ReportMemoryLikeonShudown := True 来检测内存泄漏。从 Delphi 2006 开始,除了检测内存泄漏外,应用程序的速度也有了显着提高。
文件和目录中面向对象 I/O 的类
从 Delphi 2010 开始,添加了一个新的 IOUtils 模块,其中包括三个静态类:TDirectory、TPath 和 TFile。反过来,这些类公开了几个对 I/O 任务有用的静态方法。大多数方法的功能和签名都与 .NET System.IO.Directory、System.IO.Path 和 System.IO.File 类兼容。
4.如果用户想要 FastReport VCL with Delphi 7-2009,应该怎么办?
您可以根据技术支持请求获得最新版本的FastReport VCL,支持 Delphi 7-2009。
5.FastReport VCL with Delphi 7-2009 的技术支持是什么?
由于不能保证低于 Delphi 2010 的 IDE 版本的功能,因此停止对与这些版本相关的问题提供技术支持。
开发人员可以根据要求修复导致支持 Delphi 7-2009 的 FastReport VCL 完全失败的严重错误。
拒绝Delphi 7-Delphi 2009的过时版本将使我们能够重新分配开发团队的资源以提高开发效率,减少实现新功能的时间并投入更多时间在FastReport VCL中查找错误,这反过来又会导致软件产品工作更稳定。其目标是为所有开发人员创建一个功能强大且快速的报告生成器,这一步将使产品变得更好。
FastReport技术QQ群: 585577353 欢迎进群一起讨论
欢迎任何形式的转载,但请务必注明出处,尊重他人劳动成果
转载请注明:文章转载自:FastReport控件中文网 [https://www.fastreportcn.com/]
本文地址:https://www.fastreportcn.com/post/3523.html