You could always post/send a custom message to the parent form....
So if the parent form is to expect this message at some point, you can implement it and when
ever it receives it, it then will process it.
The message can have parameters so it can point to a string.
In parent form..
procedure HandleFrameMessages(Var msg:Tmessage); message LM_USER+1;
--implementation --
Procedure Tform1.HandleFrameMessages(Var msg:Tmessage);
Var
P:PChar;
Begin
Caption := PChar(Msg.LParam)^;
Msg.Result := ?; /// set a return value
End;
-- In FrameCode ---
SomeResults := SendMessage(Frame1.Parent.handle, LM_USER+1, 0, Pchar(@SomeString[1]);
ect//
If the Message Handler does not exists in the form, it'll just return without action..
Hope this gives you some ideas...