在Delphi中,您使用包含路径还是显式包含所有必需的文件?

在Delphi中,您使用包含路径还是显式包含所有必需的文件?,delphi,Delphi,查看我们的代码库,一些代码显式地包含在项目中,并从搜索路径中拉入。是否有人对哪种做法是最佳做法以及原因有意见 更新: 我想我会澄清我的问题。我们所有的路径都是相关的,所以我们可以有多个分支,它们都引用它们分支中的代码。所以我不是问相对路径,而是问单位是应该在.dpr中还是使用搜索路径获取,这就是为什么前面的问题不能完全满足我的需要。感谢大家我有了一个非常基本的方法来确定这一点。。。如果代码是特定于项目的(没有在其他地方使用),我会显式地包含它。所有共享代码都从库路径中提取 致以最良好的祝愿, d

查看我们的代码库,一些代码显式地包含在项目中,并从搜索路径中拉入。是否有人对哪种做法是最佳做法以及原因有意见

更新:


我想我会澄清我的问题。我们所有的路径都是相关的,所以我们可以有多个分支,它们都引用它们分支中的代码。所以我不是问相对路径,而是问单位是应该在.dpr中还是使用搜索路径获取,这就是为什么前面的问题不能完全满足我的需要。感谢大家

我有了一个非常基本的方法来确定这一点。。。如果代码是特定于项目的(没有在其他地方使用),我会显式地包含它。所有共享代码都从库路径中提取

致以最良好的祝愿,
don

共享代码与特定代码是一条好规则


我使用了很多,所以通常需要一起签出/签入的文件自然属于同一个项目

我想我已经数不清我帮助过多少次了,有人发现编译器在他们的搜索路径上的某个地方发现了一个单元的重复副本,而他们却不希望在那里找到它。他们无法理解为什么在编辑器中更改代码(在搜索路径中找不到的单元副本上),并且在应用程序的行为中看不到任何更改。明确包含单元而不设置搜索路径意味着编译器只能找到单元的一个副本。

  • 我的库位于SVN中,我通常在../libraries处将它们签出(分支到)与项目相关的项目。这使include dir的范围保持小且切中要害

  • 在真实源(.pas)中,路径是完全禁止的

  • 全局delphi searchpath中没有与项目相关的路径(仅针对每个项目,或者它们是真正的通用共享源/组件)

  • 我讨厌用硬编码的路径来争论源代码,所以我通常在项目中只有几个单元,总是使用相对路径。请不要用VSS w:\驱动器代替黑客!通常,这些单元会拉入框架部分,或者由于可视化继承或表单初始化而需要

  • 不幸的是,相对路径在Delphi中可能是危险的,因为它们是相对于工作目录的,工作目录可以根据Delphi对话框(例如Open)进行更改。解决方案很简单,在主项目中有一个具有唯一名称的include文件


在两次升级Delphi并两次将我的项目转移到新计算机后,我发现硬编码路径是有害的,因为根目录往往会改变。如果你正在从事一个共享项目,情况就更糟了。

这已经在这里讨论过了:


这也是我对你问题的回答。

我也有同样的问题。没有出现在排水沟中的蓝点

简单解决方案(其中一个):

菜单>项目>编译器>生成配置。。。设置为调试而不是发布

德尔福2007


附言:嗯,我以为我已经完成了编码。有人请求了一项新功能。:)

这里使用相同的技术,尽管如果代码特定于项目,我会在项目文件夹中创建一个子文件夹,以将其精确分组。库路径是一个环境设置,而搜索路径是一个项目设置。使用搜索路径而不是库路径可以更轻松地在不同的计算机上构建相同的项目。构建机器不需要完全相同的环境设置,只需要项目就足够了。我通常也会这样做,尽管有时我会显式添加库单元,因为重命名重构和查找D2006中的引用(不知道更高版本)除非在DPR中,否则不会起作用。为什么他们没有意识到排水沟中的蓝点不在那里,也没有在他们编辑的单元中设置断点?蓝点在那里,但不一定在正确的位置。断点在运行之前看起来是正常的。如果您以前没有看过,这并不明显。不过(项目的)相对路径是可以的。