Есть программа на 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. Я её в своё время без особых раздумий по какому-то примеру в код вставил. И под семёркой она по крайней мере не мешала. А вот под десяткой получил проблему. Просто убрал эту строку - и всё заработало!
Комментариев нет:
Отправить комментарий