为了维护其项目,Delphi有时会在DPR文件(项目源)中添加或删除内容。我非常喜欢在DPR中格式化我的东西,就好像它是一个普通的单元,例如将'used'框架引用和项目源文件组合在一起。我制作它的副本,并且可以在发生这种情况时返回,但每隔一段时间,我会注意到DPR已将其所有源文件引用打包成一个块。
其他人都患有此病吗?有没有办法阻止这种情况发生(除了只读文件)。 感谢
答案 0 :(得分:9)
我为大多数项目所做的是拥有这两个文件:
MyProgramUnit
有一个公共方法Main
,它包含.dpr中的所有逻辑(包括任何条件定义)
MyProgram
只需拨打Main
。
修改1:
您可以将使用列表放在MyProgramUnit.pas
中,但它们不会自动成为您项目的一部分。
这可能是也可能不是问题,这取决于您是否希望Delphi在搜索路径中查找单位,或者将文件添加到项目中以使其可见。
您可以做的是记录MyProgramUnit.pas
中的使用列表并按原因对其进行分组。这是我通常在大多数单位中所做的事情,不仅仅是在主单位。
编辑2:
不要走{$I MyIncludeFile.inc}
方式
Delphi - 特别是IDE - 对包含文件很糟糕。代码完成等在不规则的地方失败。
过去我对包含文件很重视;不再这样了。我甚至停止将它们用于定义,并从{$IFDEF define} ... {$ENDIF}
转移到{$IF Constant1 >= Constant2} ... {$IFEND}
。
答案 1 :(得分:7)
.dpr是一个普通的Delphi文件,好吧,但是一旦在IDE中打开它,它或多或少地由IDE“拥有”。当IDE认为有必要时(例如,当您添加单元,更改某些设置等)时,无法阻止IDE添加或删除代码。这也意味着它重新格式化了部分代码。
如果您想要“不可变”代码,请将其放在一个单元中。
答案 2 :(得分:1)
我认为鲁迪是对的。
IMO,在编辑器中关闭dpr使用块是明智之举 - 项目经理的目的是做到这一点 - 手动你可能会破坏你的项目设置并引入一些难以追踪的大型项目中的错误。至于格式化,在Delphi XE中有autoformat可以完成整个项目并且是可配置的。
我经常编辑dpr的'program'部分(这也需要一些知识和注意事项),但不是编辑使用块。
还有一点:dpr中发生的一些事情可以通过项目选项设置进行控制。
HTH
答案 3 :(得分:0)
我个人在DPR文件末尾的一条巨型评论中复制了我的用法条款。 因此,当Delphi修改它时,我会从注释中“恢复”它。 当然,我必须谨慎保持我的“使用评论”最新。
注意: 我正在使用扫描项目文件的外部工具,所以我不能使用“外部单元”方法,尽管它似乎是最干净的解决方案。