加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

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

发布时间:2020-12-15 04:30:35 所属栏目:大数据 来源:网络整理
导读:我只是将Delphi 6中编写的一些旧代码升级到Delphi XE2.不幸的是,代码引用了一个Word97 COM对象来生成一些.doc文件.在代码中有一个Word97的直接使用子句. 我必须保留与旧版Crystal报表使用的Word格式相同的文档,另外还有另一个第三方应用程序,这些应用程序需
我只是将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的结果.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读