Geht schon einfacher, solange StringGrid1.Parent auch in der ParentListe von Edit1 vorkommt.
Delphi-Quellcode:
var
P: TPoint;
begin
P := Edit1.ClientToParent(TPoint.Create(0, Edit1.Height), StringGrid1.Parent);
StringGrid1.Left := P.X;
StringGrid1.Top := P.Y;
StringGrid1.BringToFront;
end;