Автор: Richard Cox

 

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

 

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

 

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

 

Code:

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

Добавить комментарий

Не использовать не нормативную лексику.

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

ВСЕ КОММЕНТАРИИ МОДЕРИРУЮТСЯ ВРУЧНУЮ, ТАК ЧТО СПАМИТЬ БЕСПОЛЕЗНО!


Защитный код
Обновить