Я видел несколько сообщений, похожих на этот вопрос, но здесь есть небольшая разница. У меня есть программа, пользовательский интерфейс которой может находиться за другими программами, но у нее есть дочерняя форма, которая отображается в верхнем левом углу и отображает результаты, эта часть монитора дублируется и отображается для публики, это «табло». Я хочу, чтобы эта форма «результатов» располагалась поверх всего (Taskmanager в порядке, я могу с этим жить). Любые другие запущенные приложения не будут пытаться подняться наверх, например «Word», «IE», «Excel» и т. Д.
Если я установлю для родительского «SetWindowPos» значение «TopMost», а для дочернего элемента также значение «TopMost», оба моих окна будут наверху, однако форма пользовательского интерфейса также будет располагаться поверх всего. Если пользователю необходимо запустить другое приложение, наша форма будет располагаться над ним, делая другое приложение непригодным для использования, однако оно будет находиться под нашей формой результатов. Мы не можем использовать таймер, чтобы переместить его наверх, так как он будет закрыт, пока не сработает таймер, этого не должно происходить.
Если я установлю только форму результатов на самый верх, она не останется наверху всего. Получается, что родитель тоже должен быть наверху? Есть ли способ обойти это и сделать ребенка сверху, а его родитель может сидеть внизу? Или родитель должен быть наверху, чтобы потомки тоже были наверху? Родитель не может сидеть над ребенком, поскольку я захватываю событие перемещения и предотвращаю его перемещение над ребенком.
Я программирую в Delphi, поэтому любые ответы будут лучше всего в Delphi, но все более общее вполне нормально, я ожидаю, что в любом случае это будет вызов Windows.
Спасибо