Delphi messagebox появляется за другой формой
Я использую код ниже, чтобы создать messagebox в Delphi 7. Однако у меня также есть другая форма на экране, кто FormStyle
установлено значение fsStayOnTop
и messagebox появляется за этой формой.
есть ли способ заставить messagebox появиться впереди?
if Application.MessageBox('Amessage here','Title', +MB_APPLMODAL + MB_ICONQUESTION + MB_YESNO) = IDNO then
3 ответов
вызов NormalizeTopMosts
до отображения окна сообщения.
используйте NormalizeTopMosts, чтобы разрешить окно сообщения или диалоговое окно, которое отображается с помощью функций API Windows (например, MessageBox и MessageDlg) непосредственно, появляются поверх самой верхней формы. В противном случае верхняя форма остается сверху и может затенять окно сообщения.
(надеюсь, он доступен в Delphi 7.)
редактировать: не уверен downvote. Если он намекает в направлении, что OP должен использовать native MessageBox функция и установить его Родительский HWND в самое верхнее окно - я бы согласился. Но, возможно, по какой-то причине это невозможно.
на Windows.pas
вы можете найти больше флагов MessageBox()
:
MB_APPLMODAL = 000000;
MB_SYSTEMMODAL = 001000;
MB_TASKMODAL = 002000;
читать о них в документация MessageBox
вы даже можете использовать MB_TOPMOST
флаг.