Delphi messagebox出现在其他表单后面

col*_*lin 8 delphi messagebox delphi-7

我正在使用下面的代码在Delphi 7中创建一个消息框.但是我在屏幕上还有另一个表单FormStyle设置为fsStayOnTop,并且消息框出现在此表单后面.

有没有办法强制消息框出现在前面?

    if Application.MessageBox('Amessage here','Title', +MB_APPLMODAL + MB_ICONQUESTION + MB_YESNO) = IDNO then
Run Code Online (Sandbox Code Playgroud)

Hei*_*cht 8

NormalizeTopMosts在显示消息框之前调用.

使用NormalizeTopMosts允许直接使用Windows API函数(如MessageBox和MessageDlg)显示的消息框或对话框显示在最顶层的表单之上.否则最顶层的表单仍然位于顶部,可能会使消息框模糊不清.

(希望它在Delphi 7中可用.)

编辑:不确定downvote.如果它暗示OP应该使用本机MessageBox函数并将其父HWND设置为最顶层的窗口 - 我会同意.但也许出于某种原因这是不可能的.

  • 嗯.到目前为止,所有3个答案都有支持,没有任何解释/理由.不确定是什么.所以没有"肇事逃逸"的徽章. (8认同)