Циклические ссылки между модулями

Циклические ссылки между модулями

Циклические ссылки модулей в интерфейсных частях запрещены. Например, следующая ситуация ошибочна:

unit A;
interface

uses
B;

implementation

end
.

unit
B;

interface

uses
A;

implementation

end
.

Таким образом, невозможно определить два общедоступных класса в разных модулях с объектными полями, ссылающимися друг на друга.

Однако, если одна ссылка находится в интерфейсной части, а вторая - в части реализации, или обе - в частях реализации, то циклические ссылки в этом случае разрешены:

unit A;
interface

implementation
uses
B;

end.

unit
B;

interface

uses
A;

implementation

end
.