2 个运行时包:如何相互使用一个单元? (德尔福)

发布于 2024-09-04 10:27:01 字数 391 浏览 6 评论 0原文

假设我们有 2 个运行时包,每个包中有 1 个表单;

Pkg1 -> Unit1 (frm1)
Pkg2 -> Unit2 (frm2)

现在我希望他们彼此“了解”。当pkg1需要知道Unit2时,我们必须在Pkg1中“要求”Pkg2。所以现在我可以“使用”Unit2,然后在Unit1代码中执行frm2.Show。

但是当我在 Pkg2 中执行相同的操作(设置为需要 Pkg1)时,它不会编译,通知 Pgk2 已经有一个单元名称 Unit2 (我认为是因为 Pkg1 需要 Pkg2)。

那么,如何: 在 Unit1 中执行“使用 Unit2”并在 Unit2 中执行“使用 Unit1”?

提前致谢。

Lets assume we have 2 runtime packages, with 1 form in each one;

Pkg1 -> Unit1 (frm1)
Pkg2 -> Unit2 (frm2)

Now I want that they "know" each other. When pkg1 needs to know Unit2, we have to "require" Pkg2 in Pkg1. So now I can do a "uses" Unit2 and then do frm2.Show in Unit1 code.

But when I do the same thing in Pkg2 (set to require Pkg1), it does not compile, informing that Pgk2 already have a unit name Unit2 (I think is because Pkg1 is requiring Pkg2).

So, how to:
in Unit1 do a "uses Unit2" and in Unit2 do a "uses Unit1"?

Thanks in advance.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

二货你真萌 2024-09-11 10:27:01

我首先看看你的逻辑。多年来,我逐渐意识到,在几乎所有情况下,这种情况都是糟糕的代码,通常是应该将内容提取到单独的类或抽象父类中的情况。或者,看看命令模式——他们应该互相发送命令而不是互相干扰吗?

I would first look at your logic. Over the years I have come to realize that in almost all cases such a situation is bad code, generally a case of stuff that should be extracted out into a separate class or an abstract parent. Alternately, look at the command pattern--should they be sending each other commands rather than messing with each other?

回心转意 2024-09-11 10:27:01

要么创建第三个包,其中包含其他两个包共有的所有内容,要么您需要使其中一个单元可用,而不使用包(例如将它们添加到 Delphi 库路径)。

Either create a third package that contains everything common to the other two or you'll need to make one of the units available without using packages like adding them to the Delphi library path.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文