Delphi 使用不带循环单位引用的单位?

Delphi 使用不带循环单位引用的单位?,delphi,delphi-xe2,Delphi,Delphi Xe2,我有3个单元 -Main -transfer -Spell 我需要的是main能够访问咒语,并且咒语能够访问main 所以我试过的是 MAIN uses transfer; TRANSFER uses ; SPELL uses main,transfer; 这样,main可以将数据发送到transfer,而spell可以从transfer获取数据并更新main 这是正常的做法吗?我怎样才能做得更好?咒语需要从主服务器传送大量数据。也有很多物品主要是由法术改变的。这取决于每个单位需要什么

我有3个单元

-Main
-transfer
-Spell
我需要的是main能够访问咒语,并且咒语能够访问main

所以我试过的是

MAIN
uses transfer;

TRANSFER
uses ;

SPELL 
uses main,transfer;
这样,main可以将数据发送到
transfer
,而
spell
可以从
transfer
获取数据并更新
main


这是正常的做法吗?我怎样才能做得更好?咒语需要从主服务器传送大量数据。也有很多物品主要是由法术改变的。

这取决于每个单位需要什么。在某些情况下,您可以将单位移动到
实现
部分开头的
uses
子句(与
界面
的开头相反)。但这一切都取决于需要什么


每当你考虑移动单元到<代码>实现< /Cult>节时,你应该总是问自己为什么你必须这么做。通常,交叉引用单元会导致依赖项过多,这有点违背了创建自包含单元的目的。例如,如果将代码放在主窗体以外的单独单元中,那么该单元就没有理由引用主窗体。

问题到底是什么?我们不能就任何具体的问题提供建议,因为没有细节。将代码放在使用其他单元的多个单元中是正常的。这是正常的。但不可能判断这是否是“正确的方式”。如果
spell
单元中的类应该是独立的(独立的),那么它们不应该依赖
main
单元(我猜这里是UI)。但这很可能不是真的,因为我不知道你们的课堂设计。没有细节,你们就不能指望得到很多启示。无论如何,你已经接受了答案,所以我想你已经找到了你需要的。是的,我想我应该更好地理解你的问题。主要原因是,为了便于查看/编码,我想把它分开。我可以把它们放在一个单元中,但总共有超过5k行。在这种情况下,也可以,只需将表单的单元移动到
实现
部分。谢谢您的帮助。向下的投票对我来说无关紧要。。。事实上,我从被否决的帖子中得到了很多帮助。。。