gpt4 book ai didi

delphi - 在 Delphi 中,我应该将共享单元添加到我的项目、共享包中,还是两者都不添加?

转载 作者:行者123 更新时间:2023-12-03 14:49:40 25 4
gpt4 key购买 nike

这个问题类似于this one ,但不是重复的,因为我询问的是该问题中未讨论的问题。

我在 Delphi 7 中有一个客户端-服务器项目,其目录结构如下:

\MyApp
\MyClientApp
\MyServerApp
\lib

有 2 个实际的 Delphi 项目 (.dpr),MyClientApp 和 MyServerApp 文件夹中各有一个。

lib 文件夹包含 .pas 单元,这些单元具有客户端和服务器应用程序的通用代码。我想知道是否应该将这些 .pas 文件包含在客户端和服务器项目中?或者我应该在 lib 文件夹中创建一个包含这些单元的包?或者我应该将 .pas 文件留在 lib 文件夹中而不将它们添加到任何应用程序/包中?

每种方法的优点/缺点是什么?哪种方式是“最好的”?将 lib 文件夹中的这些单元包含在多个项目中是否存在任何问题?

现在 lib 文件夹中的单元不属于任何应用程序/包的一部分。这样做的一个缺点是,例如,当我在 Delphi 中打开客户端应用程序,并且我想在项目中的所有文件中搜索某些内容时,它不会也在 lib 文件夹中的单元中搜索。我通过打开这些单元并在所有打开的文件中进行查找或使用 grep 搜索来解决这个问题(但我更喜欢更好的解决方案)。

我也非常喜欢一个解决方案,当我对 lib 文件夹中的这些文件进行更改时,我不必去打开一些单独的包并重新编译它(这是我应该使用项目组的地方吗?)。

最佳答案

在应用程序之间共享单元总是存在在一个应用程序中进行的不兼容更改会破坏另一个应用程序的风险。另一方面,制作这些单元的副本甚至更糟糕,因此将它们移动到自己的子目录的方法至少会增加在不考虑其他程序的情况下更改它们的心理障碍。

至于将它们添加到项目文件中:我通常将一些我经常从 IDE 访问(用于扩展或引用)的单元添加到项目中,并保留其他单元以供编译器使用搜索路径进行选择。我在每个项目的基础上这样做,这意味着某些单元可能是多个项目的一部分,为什么不呢?

只有当您确实想创建基于包的应用程序时,将它们放入包中才有意义,否则,为什么要麻烦呢?

有关如何组织项目和库的更多信息,请参阅 http://www.dummzeuch.de/delphi/subversion/english.html

关于delphi - 在 Delphi 中,我应该将共享单元添加到我的项目、共享包中,还是两者都不添加?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/543949/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com