Your design is really weird. TObject2 seems like a container for TObject1, but then you need to access TObject2's members from TObject1. Nevertheless, Arbee points a solution. Additionally, you have to forward the declaration of TObject2 since TObject1 and TObject2 are mutually referencing.