Позиция дочерних 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) после того, как элементы управления будут выравнены... что, 
впрочем, мы и хотели. 
  
           |