我有我的主要表格。 Form_Main
它创建了两个类的两个实例。
Candle_Data : TCandle_Data;
Indicator_2700 : TIndicator_2700;
为了让Indicator_2700正确计算其值,它必须能够从其中一个方法中访问对象Candle_Data中的蜡烛数据。那么Indicator_2700如何访问Candle_Data中的数据呢? Form_Main是否必须在构造函数时将其作为参数传递?
两个类声明都在它们自己的单元文件中。
答案 0 :(得分:2)
TIndicator_2700
可以有一个属性将其链接到与其自己的实例相关的TCandle_Data
实例,或者您应该将其作为参数提供给需要访问数据的方法。 / p>
您当然可以将TCandle_Data
实例传递给Indicator_2700
的构造函数,并在结果实例中存储引用,直到您需要它为止。
答案 1 :(得分:2)
您可以使用以下任何一种(非详尽的)方法:
我们实际上没有足够的信息来建议哪个是最好的,但起点始终是优先于全局状态的参数和局部变量。
答案 2 :(得分:0)
两个类声明都在它们自己的单元文件中。
这表明两者都与另一方无关。但是你仍然想要一个人知道另一个。这听起来像是一个小设计混淆,但不一定是这样。
有多种解决方案,其中有三种,每种解决方案都有自己的用途:
TCar
和TAirplane
单位Transport
) ,Transport
使用单位Fuel
:{ {1}}需要TCar
,但TDiesel
不需要TDiesel
)。这只适用于单向。 Delphi阻止在两种方式中使用编译器错误:“循环单元引用'Fuel'”。唯一的解决方法是在实现部分中使用第二个单元,但这通常被认为是一个很大的nono。TCar
被所有运输使用)类似TFuel
,TCar
和TAirplane
的类,但THorse
(TFood
的后代)仅由TFuel
和{{1}使用})。至于如何将两个类链接在一起,请参阅已经给出的答案。