我有一个 Delphi 2006 应用程序,当检测到错误情况时会弹出一个模式警报对话框。由于错误条件的检查是在空闲处理程序中完成的,因此如果碰巧显示了另一个模式对话框,则该对话框可以弹出到另一个模式对话框的顶部。这可能会导致用户感到困惑,即在关闭警报对话框后应用程序主窗体没有获得焦点,因为这是另一个模糊的模态对话框。
我想做的是在应用程序打开任何模态对话框时推迟警报弹出窗口。
我试过 GetLastActivePopup (MyMainWindow.Handle) 但它似乎一直返回非零。
我有一个 Delphi 2006 应用程序,当检测到错误情况时会弹出一个模式警报对话框。由于错误条件的检查是在空闲处理程序中完成的,因此如果碰巧显示了另一个模式对话框,则该对话框可以弹出到另一个模式对话框的顶部。这可能会导致用户感到困惑,即在关闭警报对话框后应用程序主窗体没有获得焦点,因为这是另一个模糊的模态对话框。
我想做的是在应用程序打开任何模态对话框时推迟警报弹出窗口。
我试过 GetLastActivePopup (MyMainWindow.Handle) 但它似乎一直返回非零。
只是测试
if not IsWindowEnabled(MyMainWindow.Handle) then
当非 Delphi 对话框处于模态时,这也将处理情况,例如在windows.MessageBox(Handle...
. 或显示一个通用对话框(即 TOpenDialog)。
使用AnyPopup () 函数
关于GetLastActivePopup ()。它可能返回值与 hWnd 参数相同时