Главная форма BorderStyle = bsNone. Сделал выезжающее сверху меню по кнопке на главной форме. Меню реализовано в виде отдельной формы (BorderStyle = bsSingle) которая содержит только компонент TMainMenu. То есть при нажатии на кнопку сверху главной формы появляется для пользователя как бы такая себе надстройка с главным меню программы. Перемещение двух форм сразу при перемещении одной из них реализовал, это несложно, достаточно перехватить сообщение WM_MOVING на обоих формах. Также сделал чтобы при работе с системными кнопками в форме меню действия применялись ко всему приложению (то есть минимизация и закрытие) — тут перехватил сообщение WM_SYSCOMMAND. Вот только есть одна "некрасивость". Если отображается форма меню и при этом пользователь работает с главной формой, то меню становится неактивным, это и понятно в общем то потому как в данный момент активна главная форма, но в этом случае возникает ощущение того, что приложение в целом неактивно. Как сделать так, чтобы при работе с главной формой, верхняя, встроенная форма с меню тоже была активна. Я попытался перехватить у главной формы сообщение WM_ACTIVATE и отправлять это же сообщение форме с меню, но получается что при любой активности на главной форме фокус сразу переводится на верхнюю форму, а нужно добиться только "активного цвета" ее заголовка но не фокуса. Буду благодарен за советы. Спасибо.
Вот примерно то что получается когда активна главная форма:
http://www.rsdn.ru:80/File/34064/menu.JPG