我应该何时向Delphi项目添加文件引用?

时间:2010-05-29 10:14:19

标签: delphi delphi-2007

标准VCL文件(如Dialogs,StringUtils等)的单元文件永远不会在项目DPR文件中引用。但是什么时候应该添加对DPR文件的引用? 现在我有自己的源文件和自己的组件源。

Ravereport,Devexpress,Indy,Gnostice等的源文件怎么样? 我希望尽可能快的codeinsight,但当然我不想在DPR文件中添加膨胀。我使用Delphi 2007

有关相关问题,请参阅此question

此致

3 个答案:

答案 0 :(得分:7)

我总是将项目使用的所有代码单元添加到dpr uses子句中。仅在需要时添加来自第三方库的VCL单位和单位。因此,项目的库路径仅包含vcl和第三方库的路径。

虽然项目没有必要进行编译以将所有单元添加到项目的dpr中,并且这是一项额外的工作,但它会使依赖项显式化并有助于避免因隐式使用可能“旧”而导致的问题dcu潜伏在图书馆的路上。

当您为不同的项目使用相同的单元名称和不同的内容时,它也会有所帮助。对于共享单元使用的项目特定代码很有用。共享单元只使用“unit1”,dpr表示哪一个。比使用库路径更明确,更不容易出错。

项目的dpr也总是包含所有使用的组件,vcl或第三方的路径。我的环境选项中的库路径为空。它甚至不包含vcl的路径。这可能有点ott(超过顶部),但嘿,它很容易检查...

同样,这有助于使依赖项显式化,并且当您在路径中使用自己的环境变量时,例如$(MVC)\ ComponentName \ Source,它还有助于将代码传送到另一台(的)计算机。我唯一需要做的就是将批量复制(或将其放在USB棒上)并在Delphi IDE中设置MVC环境变量。我可以放心,在构建我的项目时,安装在另一台机器上的任何东西都不会干扰。

答案 1 :(得分:1)

您只需要(并且应该)添加对DPR中实际使用的DPR中的内容的引用。例如,如果您正在编写测试项目(包含项目测试代码的项目),则可以添加GuiTestRunner或TextTestRunner(用于DUnit):

program MyTest;

uses
  all.pas in 'src\all.pas',
  your.pas in 'src\your.pas',
  project.pas in 'test\projects.pas',
  units.pas in 'test\units.pas',
  TextTestRunner;

var
  R: TTestResult;

begin
  R := TextTestRunner.RunRegisteredTests;
  ExitCode := R.ErrorCount + R.FailureCount;
end.

否则,对于Indy或其他第三方单位,只需以实际使用它们的单位引用它们。

答案 2 :(得分:1)

我尽可能少地添加单元到.dpr。这是因为我不喜欢在那里放置硬编码路径,而且相对路径有时会出现奇怪的错误(like described here),让我可以相对自由地移动代码。

但是我并没有真正通过项目检查员浏览单位,我通过开放单位通过ctrl-enter导航大部分单位。我的同事不得不习惯这个,所以对于一个快乐的老鼠来说,这可能是不可行的。