条件编译取决于当前活动项目

时间:2010-10-22 07:56:03

标签: delphi delphi-2010

我正在为Delphi 2010中的大型应用程序开发一个新模块。

我在两个项目的项目组中组织了我的源代码,一个用于构建完整的应用程序,另一个用于启动我的测试套件(与主应用程序共享一些源代码)。

在单位初始化期间,我需要采取不同的行动,取决于我正在编制的两个中的哪一个。

unit MySharedUnit
var
  flag : TFlagValues;

implementation
[...]

initialization

if IsTestProject then
  flag := TestValue
else
  flag := ReleaseValue;
end. 

目前,我使用项目定义的环境变量(仅在项目选项中的一个中定义)来决定活动项目。

我的问题是:

是否有另外一种或更优雅的方法可以做到这一点,比如内置的#define'd值,当测试应用程序应该在Release模式下运行时,不需要我手动修改项目选项?

1 个答案:

答案 0 :(得分:6)

Delphi知道条件编译,如:

initialization
{$IFDEF FULLVERSION}
  flag := ReleaseValue;
{$ELSE}
  flag := TestValue
{$ENDIF}
end. 

如果您愿意,可以在项目中设置FULLVERSION(或任何其他名称)。

使用Delphi 2010,您可以为Debug和Release版本提供一组不同的选项。