我在AfterSignup单元中使用BeforSignup是为了能够从AfterSignup代码中调用电子邮件变量,最后我知道了一个问题,因为我想创建一个按钮,使用代码打开AfterSignup窗口:
AfterSignup.Show;
但问题是我有义务将AfterSignup单元添加到BeforeSignup的使用列表中,这正是我无法做到的,因为我很喜欢使用BeforeSignup到AfterSignup单元。
我收到一个错误说,是圆形单位的参考。
答案 0 :(得分:13)
简单的解决方案是在unitA
的{{1}}部分的uses
子句和interface
unitB
中添加unitB
uses
implementation
部分的子句
更好的解决方案是打破两个(或至少一个)单位的依赖性。
您可以通过
unitA
移至unitA
进入unitB
unitB
。答案 1 :(得分:3)
如果单元的interface
部分中的类型声明和变量声明需要另一个单元中的类或变量,那么您应该将所需的单元添加到接口部分的uses
子句中。
但是,如果您只需要单元的implementation
部分中的类和变量,在实现代码中,那么您应该仅将所需单元添加到实现部分中的uses
子句中
如果您已在接口部分中引用了该单元,则不得在实现部分中再次包含该单元。
如果两个单元仅在实现部分中相互使用,则没有循环引用。您也可以混合使用,只要两个单元在接口部分(直接或间接)不相互使用,就不会有循环引用。
因此,基于您的问题,您似乎只应在实施部分中使用这些单元,并且不会有循环引用。