Запретить отображение основной формы при отображении другой формы - PullRequest
3 голосов
/ 05 июня 2011

Я пытаюсь вывести свою вторичную форму на передний план, однако, когда я делаю

MyForm.Show; // It may be hidden, therefore show it first
SetForegroundWindow(MyForm.Handle);

Моя основная форма тоже появляется. Единственный способ предотвратить это - сделать MainForm.Hide;, но я должен этого избежать.

Идея состоит в том, чтобы моя вторичная форма отображалась поверх другого приложения, и моя основная форма не должна была это делать.

Ответы [ 2 ]

2 голосов
/ 05 июня 2011

Если вы планируете создать другое приложение для этой функции, вы также можете рассмотреть следующий компромисс: минимизировать MainForm до панели задач (а не скрывать ее), чтобы предотвратить ее появление при активации другой формы.

Если это так, попробуйте этот ответ . Он добавляет дополнительный значок на вашу панель задач для вторичной формы, но я думаю, что это не будет проблемой, так как другое приложение тоже. Однако, если MainForm не свернута, а скрыта другими окнами, при активации вторичной формы также появится всплывающая подсказка MainForm, как вы сейчас это делаете.

И для полноты этого ответа, но ни в коем случае не подразумеваемого как совет: этот ответ описывает (несколько экспериментальную) конструкцию для создания полностью независимых окон. Немного времени, когда я тестировал это решение, оно, похоже, сработало, но будьте готовы больше не рассчитывать на полную / стандартную функциональность VCL.

0 голосов
/ 05 июня 2011

Попробуйте установить состояние формы на fsAlwaysOnTop.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...