The "easiest" way is to hand down the part you need.
I.e., the frame-2 may not need to know about Form1 at all, just about the edit?
TFrame2 = class(TFrame)
public
property OuterFooBarEdit: TEdit write .. read ...
end;
The Form can store a copy of TEdit there. Then you can work with it.
Or if you don't need to know the entire TEdit, but just trigger something small, then you can have an event (e.g. TNotifyEvent, or your own type of event there).
Multiple events (including calls to get data) can go into an interface... But then...
Then the question is: Does it have to happen on the form or frame at all.
Separate GUI from app-logic.
Have a new unit, with the logic. And do all the work there.
This unit should neither know the form nor the frame.
It gets called by either of them.
And to send its answers, it has events, or an interface that are provided by each of the GUI element as part of an initial setup connection everything.