如何防止Delphi意外修改其DPR(项目源)

Bri*_*ost 7 delphi project

为了维护其项目,Delphi有时会添加或删除DPR文件(项目源)中的内容.我非常喜欢在DPR中格式化我的东西,就好像它是一个普通的单元,例如将'used'框架引用和项目源文件组合在一起.我制作它的副本,并且可以在发生这种情况时返回,但每隔一段时间,我会注意到DPR已将其所有源文件引用都打包成一个块.

其他人都受此影响吗?有没有办法阻止这种情况发生(除了只读文件).谢谢

Jer*_*ers 9

我为大多数项目做的是拥有这两个文件:

  1. MyProgram.dpr
  2. MyProgramUnit.pas

MyProgramUnit有一个公共方法Main,包含.dpr中的所有逻辑(包括任何条件定义)

MyProgram只是打电话Main.

编辑1:

您可以将使用列表放入MyProgramUnit.pas,但它们不会自动成为项目的一部分.这可能是也可能不是问题,这取决于您是否希望让Delphi在搜索路径中查找单元,或者将文件添加到项目中以使其可见.

您可以做的是记录使用列表MyProgramUnit.pas并按原因对它们进行分组.这是我通常在大多数单位中所做的,不仅仅是在主单元中.

编辑2:

不要走的{$I MyIncludeFile.inc}路.
Delphi - 特别是IDE - 对包含文件很糟糕.代码完成等在不规则的地方失败.

我过去一直沉重的包含文件; 不再这样了.我甚至停止使用它们来定义,并从{$IFDEF define} ... {$ENDIF}朝向移动{$IF Constant1 >= Constant2} ... {$IFEND}.

  • 你可以使用你想要的任何单位@David.但是在MyProgramUnit中使用单位并不能使它们成为项目的一部分,因此该单元没有理由使用它不直接需要的任何东西. (2认同)

Rud*_*uis 7

.dpr是一个普通的Delphi文件,好吧,但是一旦在IDE中打开它,它或多或少地由IDE"拥有".当IDE认为有必要时(例如,当您添加单元,更改某些设置等)时,无法阻止IDE添加或删除代码.这也意味着它重新格式化了部分代码.

如果您想要"不可变"代码,请将其放在一个单元中.

  • ...或者根本不使用IDE.使用记事本和命令行编译器.:-)我早已放弃并意识到Delphi IDE拥有.dpr文件以及我在Uses子句中编写的任何内容,特别是可能会被更改.由我来承诺或恢复该更改(版本控制).任何人不使用版本控制加上进行异地备份; 嗯...我很可惜傻瓜 (2认同)
  • 好吧,而不是记事本,我可能会使用更好的编辑器,但它是可能的.真正的程序员...... (2认同)