I still don't understand what you wanted. But this code does not correspond to "one to many relationship", because one Object1 can fall into the set of several (or all) Object2, when the owner changes. And Object2 can contain a set of Object1 by definition.
There are two arrays -- one of TObject1, and another of TObject2.
TObject1 has a pointer to any one of array members of TObject2. But more than one TObject1 can point to the same TObject2. So TObject2 can have many TObject1s, but one TObject1 can point only one TObject2. So I said one to many relationship.
What I'm trying to do is to extract TObject1s that are pointing to one TObject2.
Let's assume that there are two arrays.
Obj1s : array of TObject1;
Obj2s : array of TObject2;
And let's assume..
Obj1s[1] := Obj2s [1]; // would be Obj1s[1].obj2 := Obj2s[1]; to write exactly
Obj1s[2] := Obj2s [1];
Obj1s[3] := Obj2s [1];
Obj1s[4] := Obj2s [2];
Obj1s[5] := Obj2s [2];
Obj1s[6] := Obj2s [3];
What I'd like to do is to extract Obj1s[1], Obj1s[2], Obj1s[3] from Obj2s[1] later.