Вы можете попробовать с этим кодом:
var
ActForm: TCustomForm;
begin
ActForm := Screen.ActiveForm;
if (ActForm = nil) or not (fsModal in ActForm.FormState) then begin
end;
end;
Я тестировал с Delphi 4, у меня работает.
[РЕДАКТИРОВАТЬ]: Но вы должны подумать о том, является ли хорошей идеей появление формы и кража фокуса. Это зависит от вашего приложения, но если пользователь в данный момент вводит что-то в поле редактирования или делает что-то с помощью мыши, это может нарушить их рабочий процесс.