Du kannst in dem Frame die Messages CM_PARENTVISIBLECHANGED oder CM_SHOWINGCHANGED abfangen und dort das fsModal abfragen:
Delphi-Quellcode:
TMyFrame = class(TFrame)
private
procedure CMPARENTVISIBLECHANGED(var Message: TMessage); message CM_PARENTVISIBLECHANGED;
// oder
procedure CMShowingChanged(var Message: TMessage); message CM_SHOWINGCHANGED;
// ...
procedure TMyFrame.CMPARENTVISIBLECHANGED(var Message: TMessage);
var
isModal: Boolean;
begin
inherited;
isModal := (fsModal in GetParentForm(Self).FormState); // funktioniert auch wenn der Frame nicht direkt im Form sitzt sondern z.B. auf einem TPanel oder TPageControl
// ...
end;