Gracias Casimiro por tu observacion, entonces creo que voy en buen camino. Estuve probando algunas cosas y ya logre mostrar la ventana arriba si el edit esta en la parte inferior del form. Me quedo asi:
Código Delphi
[-]class procedure TFrmBusqueda.Buscar(AControl: Twincontrol; AResults: TGetResults
);
var
Frm:TFrmBusqueda;
P:TPoint;
T:TPoint;
begin
Frm:=TFrmBusqueda.Create(nil);
frm.FProcRes:=AResults;
P:=AControl.parent.ClientToScreen(point(AControl.Left,AControl.BoundsRect.Bottom));
T:=AControl.parent.ClientToScreen(point(AControl.Left,AControl.top));
if (p.Y + frm.Height)>Screen.DesktopHeight then
P.Y:=t.Y - frm.Height;
frm.Left:=p.X;
frm.Top:=p.Y;
frm.Show;
end;
Ahora me falta el caso de verificar si el edit esta en el extremo derecho. Si consigo hacerlo lo pondre tambien aqui por si es de utilidad a alguien.
Saludos