Delphi 两个项目中的共享单元
Delphi shared unit in two projects
我有两个应用程序,它们的部分功能相同,每次更新这些功能时都要更改两个应用程序是不方便的。
是否可以将项目编译成一个共享单元,共享函数?该单元将使用来自两个项目的具有相同名称和 类 的组件进行操作。 (到目前为止,我总是在共享功能的项目之间复制相同的代码)。
如果有帮助,我已将这两个项目加入项目组。
这很简单!
- 将共享源文件复制到专用于共享源的 [可能是新的] 文件夹中。
- 在两个项目文件夹中,删除共享文件(.pas、.dfm(或.fmx)和.dcu)
- 打开第一个项目,如果共享文件明确包含在项目中,现在IDE抱怨丢失文件并将其从项目中删除。如果未删除,请使用项目管理器手动将其删除(如果不可见,请按 Ctrl+Alt+F11 查看)。
- 使用项目管理器在项目中明确添加共享文件(右键单击项目并单击“添加现有”,然后 select 您在第一步中复制的源文件)。您可以将共享文件夹添加到 Delphi 库路径(Menu / Options / Language / Delphi / Library / Library path),而不是显式添加共享文件。我更喜欢将共享单元显式添加到每个项目,但这是个人喜好问题。
- 现在您可以照常构建项目了。
不同项目之间共享单元没有限制。他们也不需要在同一个项目组中。
这正是第 3 方库和 Delphi 运行时的工作方式。
当然,您必须始终牢记,这些共享单元的任何更改都会影响使用它们的所有项目。如果你修复了一个错误,它会在所有项目中自动修复,你只需要重新编译这些项目(很好)。如果你引入一个新的错误,它会影响所有的项目(不好)。
然后就是将这些单元放在哪里以及如何在 SCM 中处理它们的问题。如果您使用 SubVersion,您可以将它们作为 svn:external 添加到项目源中。其他 SCM 可能提供类似的功能。
我有两个应用程序,它们的部分功能相同,每次更新这些功能时都要更改两个应用程序是不方便的。
是否可以将项目编译成一个共享单元,共享函数?该单元将使用来自两个项目的具有相同名称和 类 的组件进行操作。 (到目前为止,我总是在共享功能的项目之间复制相同的代码)。
如果有帮助,我已将这两个项目加入项目组。
这很简单!
- 将共享源文件复制到专用于共享源的 [可能是新的] 文件夹中。
- 在两个项目文件夹中,删除共享文件(.pas、.dfm(或.fmx)和.dcu)
- 打开第一个项目,如果共享文件明确包含在项目中,现在IDE抱怨丢失文件并将其从项目中删除。如果未删除,请使用项目管理器手动将其删除(如果不可见,请按 Ctrl+Alt+F11 查看)。
- 使用项目管理器在项目中明确添加共享文件(右键单击项目并单击“添加现有”,然后 select 您在第一步中复制的源文件)。您可以将共享文件夹添加到 Delphi 库路径(Menu / Options / Language / Delphi / Library / Library path),而不是显式添加共享文件。我更喜欢将共享单元显式添加到每个项目,但这是个人喜好问题。
- 现在您可以照常构建项目了。
不同项目之间共享单元没有限制。他们也不需要在同一个项目组中。
这正是第 3 方库和 Delphi 运行时的工作方式。
当然,您必须始终牢记,这些共享单元的任何更改都会影响使用它们的所有项目。如果你修复了一个错误,它会在所有项目中自动修复,你只需要重新编译这些项目(很好)。如果你引入一个新的错误,它会影响所有的项目(不好)。
然后就是将这些单元放在哪里以及如何在 SCM 中处理它们的问题。如果您使用 SubVersion,您可以将它们作为 svn:external 添加到项目源中。其他 SCM 可能提供类似的功能。