Форма поверх остальных окон

21.02.2012
Рассмотрим простой, но часто необходимый вариант отображения окон в программе.

Пример


Допустим у нас есть приложение в котором 5 (пять) окон, одно как обычно главное (Form1), а остальные дочерние.
По умолчанию, в Delphi, если показать на экране дочерние окно
Form2.Show

то оно откроется поверх главного, но стоит кликнуть на главное, как дочернее прячется за основным окном. В принципе, всё логично, но что если основное окно во весь экран? А в панели задач дочерние окна естественно не отображаются, в итоге доступ до них будет не удобен для пользователя.
Самый простой вариант, это
Form2.ShowModal

В итоге дочернее окно будет поверх основного, пока его не закроют, но доступ к основному будет ограничен. А [отелось бы иметь доступ и к основному, в этом случае нам поможет такое свойство форм, как FormStyle
По умолчанию оно у всех форм равно fsNormal
Form.FormStyle := fsNormal

Оставим его таким у основного окна, а у дочерних поставим равным fsStayOnTop
Form.FormStyle := fsStayOnTop

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