1

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

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

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

4

2 回答 2

1

这很容易!

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

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

这正是 3rd 方库和 Delphi 运行时的工作方式。

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

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

于 2020-12-08T14:48:09.547 回答