Страницы

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

пятница, 27 декабря 2019 г.

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

#delphi #windows_10 #delphi_xe8


Есть программа на 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. Точнее, иногда окно появляется поверх
всех, но гораздо чаще оказывается наоборот в самом "низу", под всеми окнами. Может
кто сталкивался с таким? И как это попробовать полечить?
    


Ответы

Ответ 1



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

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

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