fsStayOnTop: Huge complaint about TMS components

Several TMS components create forms behind the scenes to achieve some ingenious functionality.  But this code often makes assumptions about the underlying application.  For example, FormStyle fsStayOnTop does not play well with PopupMode pmAuto.  fsStayOnTop and PopupParent are trying to accomplish the same thing in different ways and do not play well together.

In several places, we've replaced "FormStyle := fsStayOnTop" with this code:

  if Application.ModalPopupMode = pmNone then
    FormStyle := fsStayOnTop
  else begin
    if Self.Parent = nil then
      PopupParent := Screen.ActiveForm
    else
      PopupParent := GetParentForm(Self);
  end;

I don't know that this is the best approach.  It may be idea to surface a property or event that allows us to specify a PopupParent.  Sometimes the PopupParent would be known at design-time sometimes not.  For our application, the code above does very well.

The problem is that I have to maintain these overrides and re-insert them each time we update to TMS's latest versions.  Which means we don't update very often...

We'll investigate this if there aren't any side effects to this code change and when applicable, we'll consider this for a future version.

Thank you.