8

我正在研究一个大型单元,该单元变得如此之大,以至于我决定将其拆分为 3 个单元。假设这些单位名称是MainCommonObjects。该Main单元同时使用其他两个单元,并且该Objects单元也使用该Common单元。所有 3 个单元中都有代码需要参考这些条件。

问题是,无论我在 3 个单元中定义这些条件的哪个单元,其他 2 个单元都看不到它们。我当然不想在所有 3 个单元中复制它们。我也不想在项目中定义它们,因为这些单元将被多个项目使用,在这种情况下,所有使用它的项目都不应该关心条件。

我是否可以以所有 3 个单元都可以看到它们的方式定义这些条件,而不在项目中定义它们?

4

1 回答 1

8

对于条件定义,您唯一的选择是将它们放在一个 .inc 文件中,然后将其包含在所有三个单元中。

但是,条件定义,$IFDEF并不是实现条件编译的唯一方式。您可能会考虑使用布尔常量而不是条件。只要它在所有三个单位中都可见,您就可以使用$IF而不是$IFDEF.

{$IF MyConstant}
  ....
{$IFEND}

或者,从 XE3 开始,您可以终止{$IF}with {$ENDIF}

就我个人而言,在尝试有条件地编译并且不希望条件具有全局范围时,我倾向于支持后一种方法。

于 2013-03-15T21:31:32.060 回答