Delphi在两个项目中共享单元

Delphi在两个项目中共享单元,delphi,module,Delphi,Module,我有两个部分功能相同的应用程序,每次更新这些功能时都不方便更改这两个应用程序 是否可以使用一个共享单元和共享功能编译项目?该单元将使用两个项目中具有相同名称和类别的组件进行操作。(到目前为止,我只是在项目之间为共享函数复制相同的代码) 如果这有帮助,我将这两个项目加入项目组。这很容易 将共享源文件复制到专用于共享源的[可能是新的]文件夹中 在两个项目文件夹中,删除共享文件(.pas、.dfm(或.fmx)和.dcu) 打开第一个项目,如果共享文件显式包含在项目中,现在IDE会抱怨缺少文件,并将其

我有两个部分功能相同的应用程序,每次更新这些功能时都不方便更改这两个应用程序

是否可以使用一个共享单元和共享功能编译项目?该单元将使用两个项目中具有相同名称和类别的组件进行操作。(到目前为止,我只是在项目之间为共享函数复制相同的代码)

如果这有帮助,我将这两个项目加入项目组。

这很容易

  • 将共享源文件复制到专用于共享源的[可能是新的]文件夹中
  • 在两个项目文件夹中,删除共享文件(.pas、.dfm(或.fmx)和.dcu)
  • 打开第一个项目,如果共享文件显式包含在项目中,现在IDE会抱怨缺少文件,并将其从项目中删除。如果未删除它,请使用项目管理器手动删除它(如果不可见,请按住Ctrl+Alt+F11键查看)
  • 使用project Manager在项目中显式添加共享文件(右键单击项目并单击“添加现有文件”,然后选择您在第一步复制的源文件)。您可以将共享文件夹添加到Delphi库路径(菜单/选项/语言/Delphi/库/库路径),而不是显式添加共享文件。我更喜欢将共享单元显式地添加到每个项目中,但这是一个品味问题
  • 现在您可以像往常一样构建项目了

  • 不同项目之间共享单元没有限制。他们也不需要在同一个项目组中

    这正是第三方库和Delphi运行时的工作方式

    当然,您必须始终记住,这些共享单元中的任何更改都将影响使用它们的所有项目。如果你修复了一个bug,它会在所有项目中自动修复,你只需要重新编译这些项目(很好)。如果您引入了一个新的bug,它将影响所有项目(坏)


    还有一个问题是,这些单元应该放在哪里,以及如何在SCM中处理它们。如果使用SubVersion,可以将它们作为svn:external添加到项目源中。其他SCM可能提供类似的功能。

    是的,这是绝对可能的。事实上,这样做甚至是明智的,部分原因是编程最重要的规则之一是。谢谢你,我认为这应该是可行的,你的指南结合了这个主题。。。帮我解决了:)