这应该是这样工作还是我做错了什么?
{$IFDEF DEBUG} ADebugUnit,{$ELSE} ARelaseUnit,{$ENDIF}
我希望在调试模式下使用ADebugUnit,但在发布模式下编译时使用AReleaseUnit.当我选择向项目添加新单元时,这种方法效果很好.当我这样做时,它基本上将处理代码,并且只保留与项目当前设置的任何配置相关的单位.
例如,如果配置设置为Debug,那么在向项目添加新单元后,上面的代码将更改为:
ADebugUnit,
或者,如果我的配置设置为Release,则在添加新单元后将更改为以下内容:
ARelaseUnit,
解决方法
IDE拥有大部分DPR文件.小心你对它做了什么,或者你冒着你所观察到的风险(或者更糟 – 根据更改的性质,IDE有时可能决定不允许编译文件!).
除此之外,这意味着您不能有条件地在DPR文件中包含单位.你必须找到解决你试图解决的任何问题的另一种解决方案.
例如,您可以使用项目中其他位置的单元而不是DPR文件.
或者也许您可以将两个单元合并为一个,然后有条件地编译其内容.
或者也许您可以一直使用调试代码,因为这会增加您运行相同代码的机会.
或者,如果仅在使用“添加单元”对话框时出现此问题,则可以放弃该对话框并手动编辑DPR文件.正如你所注意到的那样,除了use子句被重写之外,在项目中添加一个单元背后没有别的魔力.