Joa ... des iss relativ einfach.
In dem modalen Form definierst du eine Prozedur
Delphi-Quellcode:
procedure MyCloseMessage(var AMessage : TMessage); message WM_USER + 1;
//...
procedure TForm2.MyCloseMessage(var AMessage: TMessage);
begin
ModalResult := mrOk;
end;
Dann brauchst du nur noch die Message hinschicken:
SendMessage(Form2.Handle, WM_USER + 1, 0, 0);
WM_USER + 1 ist nur ein Beispiel ... da sollte man etwas höheres nehmen, weil WM_USER + 1 schon sehr oft verwendet wird.