我正在为Delphi 2010中的大型应用程序开发一个新模块。
我在两个项目的项目组中组织了我的源代码,一个用于构建完整的应用程序,另一个用于启动我的测试套件(与主应用程序共享一些源代码)。
在单位初始化期间,我需要采取不同的行动,取决于我正在编制的两个中的哪一个。
unit MySharedUnit
var
flag : TFlagValues;
implementation
[...]
initialization
if IsTestProject then
flag := TestValue
else
flag := ReleaseValue;
end.
目前,我使用项目定义的环境变量(仅在项目选项中的一个中定义)来决定活动项目。
我的问题是:
是否有另外一种或更优雅的方法可以做到这一点,比如内置的#define'd值,当测试应用程序应该在Release模式下运行时,不需要我手动修改项目选项?
答案 0 :(得分:6)
Delphi知道条件编译,如:
initialization
{$IFDEF FULLVERSION}
flag := ReleaseValue;
{$ELSE}
flag := TestValue
{$ENDIF}
end.
如果您愿意,可以在项目中设置FULLVERSION(或任何其他名称)。
使用Delphi 2010,您可以为Debug和Release版本提供一组不同的选项。