Ich würde es so machen ...
Eine boolsche Variable in der private Section von TMain erstellen
Code:
private
...
ModalformActive:Boolean;
Vor dem Anzeigen des Modalforms ModalformActive auf True, Nach den Schließen auf False;
Code:
procedure TMain.irgendwas(sender:TObject);
begin
...
ModalformActive:=true;
Modalform.ShowModal;
ModalformActive:=false;
...
end;
Popup nur Anzeigen wenn ModalformActive False ist
Code:
procedure TMain.nochirgendwas(sender:TObject);
begin
...
if not Main.ModalformActive then ShowPopup(....);
...
end;