من دو تا کلاس به شکل زیر تعریف کردم که باعث خطا میشه. این یه مثاله ولی محتوای unit های واقعی شامل چندین هزار خط کد که کنترل آن سخت شده است برای همین می خوام کلاسها رو مجزا کنم
Unit A
unit A;
interface
uses B;
type
TPattern = class
private
FNetwork:TNetwork;
public
constructor create(aNetwork:TNetwork);
end;
implementation
{$R *.dfm}
{ TPattern }
constructor TPattern.create(aNetwork: TNetwork);
begin
FNetwork:=ANetwork;
end;
end.
Unit B
unit B;
interface
uses A; // Error Here : Circular Unit Reference
type
TNetwork = class
private
Patterns:array of TPattern;
public
constructor create(aCount:Integer);
end;
implementation
{$R *.dfm}
{ TNetwork }
constructor TNetwork.create(aCount: Integer);
var
I: Integer;
begin
SetLength(Patterns,aCount);
for I := 0 to aCount - 1 do
Patterns[i]:=TPattern.create(Self);
end;
end.