运行 rsvars.bat 带有 TRichView 组件

Running rsvars.bat with TRichView components

我正在尝试使用 Delphi 提供的 rsvars.bat 文件通过命令行构建我的 Delphi 文件(我正在使用 Delphi XE2)。大多数事情似乎都很好,但我有一些错误出现在 TRichView 中。 TRichView 提供了一个名为 RVStyle.pas 的文件,它定义了变量 TRVTag,如下所示:

  {$IFNDEF RVOLDTAGS}
  TRVTag = type String;
  {$ELSE}
  TRVTag = Integer;
  {$ENDIF}

这样做似乎是为了向后兼容,基于此线程,TRVTags 从 Integer 更改为 String。 http://www.trichview.com/forums/viewtopic.php?f=2&t=6377

在我们的自定义控件之一中,我们将 Integer ItemIndex 传递给请求 TRVTag 的 GetItemTag。

   Result := GetItemTag(ItemIndex);

这在通过 Delphi 构建文件时工作正常,但在通过命令行构建文件时我收到 'Incomparable type' 错误。具体错误为:

Incompatible types: 'Integer' and 'TRVTag'

这似乎发生在我们的自定义控件中的几个地方,有时它说不兼容的类型 'integer' 和 'TRVTag' 其他时候它说不兼容的类型 'string' 和 'Integer.

对我来说,当通过命令行构建时,构建以某种方式没有获取 RVStyle.pas 或

中定义的 TRVTag 的定义

我的构建批处理文件如下所示:

cd c:\frontend\v10
call rsvars.bat
MSBuild del12\del12.dproj
PAUSE

我是否可以添加一些东西到我的批处理文件中,使我能够在没有不兼容类型错误的情况下构建这些文件,就像通过 XE2 本身构建时一样?

您的代码假定已定义 RVOLDTAGS。您已经在调试配置中定义了它,但没有在其他配置中定义它。配置使用继承。这允许属性由派生配置继承,或者只为某些配置定义属性,或者为某些配置覆盖属性。

在您的情况下,您的代码要求为所有配置定义 RVOLDTAGS。因此,您应该在继承所有其他配置的根配置中定义它。从调试配置中删除定义并在根配置中重新引入它。