Позиция дочерних MDI-окон


Автор: Richard Cox

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

У меня была аналогичная проблема -- она проявлялась при условии, когда свойство главной формы WindowState устанавливалось на wsMinimized.

Вот мое решение: добавьте этот небольшой метод к вашей главной форме:



interface


procedure
 CMShowingChanged(var Message: TMessage); message CM_SHOWINGCHANGED;

implementation


procedure
 TMainForm.CMShowingChanged(var Message: TMessage);
var

  theRect: TRect;
begin

  inherited
;
  theRect := GetClientRect;
  AlignControls(nil
, theRect);
end
;




Это работает, поскольку вызов AlignControls (в TForm) делает две вещи:

выравнивает элементы управления (включая ваш проблемный StatusBar) и
вновь позиционирует окно клиента относительно главной формы (оно ссылается на ClientHandle) после того, как элементы управления будут выравнены... что, впрочем, мы и хотели.




пластиковые окна расчет, пластиковые окна в кредит Обзор сайта forex-mmcis.ru катаракта симптомы лечение салон элитные двери