Страницы

Поиск по вопросам

среда, 13 марта 2019 г.

Под Windows 10 форма не выводится поверх всех окон

Есть программа на Delphi XE8, висящая в области уведомлений и при определённых событиях показывающая окно с информацией. Под Windows 7 следующий код обеспечивал показ формы поверх всех окон практически на 100%.
with TfrmInfo.Create(self) do begin Show; Application.NormalizeTopMosts; SetWindowPos(Handle, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOACTIVATE + SWP_NOMOVE + SWP_NOSIZE); end;
И этот код перестал срабатывать под Windows 10. Точнее, иногда окно появляется поверх всех, но гораздо чаще оказывается наоборот в самом "низу", под всеми окнами. Может кто сталкивался с таким? И как это попробовать полечить?


Ответ

"Виновником" оказалась строка с Application.NormalizeTopMosts. Я её в своё время без особых раздумий по какому-то примеру в код вставил. И под семёркой она по крайней мере не мешала. А вот под десяткой получил проблему. Просто убрал эту строку - и всё заработало!

Комментариев нет:

Отправить комментарий