Zobacz Forward Declarations and Mutually Dependent Classes
dokumentacji.
type (* start type section - one unified section "to rule them all" *)
TAsyncPopulator = class; (* forward declaration *)
TThreadPopulator = class(TThread)
private
_owner:TASyncPopulator;
end;
TAsyncPopulator = class (* final declaration - WITHIN that very section where forward declaration was made *)
private
_updater: TThreadPopulator;
end;
Użyj źródła, Luke! Twoja instalacja Delphi ma pełne źródła VCL i RTL, abyś mógł je przeczytać i uczyć się. I bardzo często korzysta z tego szablonu. Za każdym razem, gdy zadajesz sobie pytanie "jak mogę to zrobić", pomyśl tylko "jak zrobił to Borland" i całkiem możliwe, że już masz gotowy przykład w źródłach dostarczanych przez Delphi.
Stosowny dokumentacja jest tutaj: http://docwiki.embarcadero.com/RADStudio/XE2/en/Classes_and_Objects# Forward_Declarations_and_Mutually_Dependent_Classes –