delphi – EmptyParam现在变量是一个函数 – 如何解决遗留代码?

前端之家收集整理的这篇文章主要介绍了delphi – EmptyParam现在变量是一个函数 – 如何解决遗留代码?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我只是将Delphi 6中编写的一些旧代码升级到Delphi XE2.不幸的是,代码引用了一个Word97 COM对象来生成一些.doc文件.在代码中有一个Word97的直接使用子句.

我必须保留与旧版Crystal报表使用的Word格式相同的文档,另外还有另一个第三方应用程序,这些应用程序需要文档的格式.

所以,这个问题.因为我在uses子句中使用Word97,编译器会抱怨当使用EmptyParam变量时,实际和形式的var参数的类型必须相同.这是直接从Word97.pas源文件.这是因为EmptyParam现在被声明为一个函数而不是一个变量.

什么是最好的方式来处理这个?我应该将Delphi 6源文件(Word97.pas等)说到我的本地目录中,直接将它们添加到我的项目中,并与System.Variants.pas一起更改我的应用程序的编译器指令以包含EMPTYPARAM_VAR?我没有尝试过,但希望它会将EmptyParam声明为变量.或者也许有一个更容易的解决方案.

谢谢

编辑

这里有一些更多的背景信息,即使我已经接受了一个答案,以备将来参考.以下是代码示例(AddClaimsLetter是“Application”COM对象 – 即TWordApplication):

AddClaimsLetter.Documents.Open(Wordfile,EmptyParam,EmptyParam);

没有改变任何东西,这里的EmptyParam参数在编译时失败,说明“E2033实际和正式变量参数的类型必须相同”.

但是,因为我想保留Word97(在Delphi 6 Ent.安装文件夹中的OCX / Server中),所以我确实需要将.pas文件复制到本地的项目文件中,并声明一个用于替代EmptyParam的变量(因为这些文件也尝试编译,我得到与上述相同的编译器错误).

所以现在所有的工作,但我可以讨论管理升级到这个应用程序的Office的更高版本!

谢谢

解决方法

我的快速解决方法的问题可能是声明一个类型为OleVariant的本地变量,并将其分配给函数EmptyParam的结果.
原文链接:https://www.f2er.com/delphi/101296.html

猜你在找的Delphi相关文章