Delphi - 检测我的应用程序是否打开了模态对话框

ros*_*mcm 4 forms delphi modal-dialog showmodaldialog

我有一个 Delphi 2006 应用程序,当检测到错误条件时,它会弹出一个模式警报对话框。由于对错误条件的检查是在空闲处理程序中完成的,如果碰巧显示了另一个模态对话框,则该对话框可能会弹出到另一个模态对话框的顶部。这可能会导致用户感到困惑,即在关闭警报对话框后应用程序主窗体没有获得焦点,因为这是另一个模糊的模式对话框。

我想做的是在应用程序打开任何模态对话框时推迟警报弹出窗口。

我试过 GetLastActivePopup (MyMainWindow.Handle) 但它似乎一直都返回非零值。