PDA

Просмотр полной версии : Изменение размеров формы в C++ Builder



AleksP
20.04.2008, 15:08
На форме есть два компонента PageControl1 и DBGrid1. DBGrid1->Align = alBottom, PageControl1->Align = alNone.
Высота DBGrid1 фиксирована. При изменении размеров формы выполняется функция FormResize.

void __fastcall TForm1::FormResize(TObject *Sender)
{
PageControl1->Height = ClientHeight - DBGrid1->Height;
}

При перетаскивании курсором мыши границ формы все работает нормально. Проблема возникает, если выполнить на форме сначала Maximize, а потом Restore Down. Значение DBGrid1->Top при этом не меняется и остается таким же, как и до Restore Down, соответственно DBGrid1 съезжает вниз.

Добавление в FormResize строки DBGrid1->Top = ClientHeight - DBGrid1->Height ни к чему не привело.

В чем может быть проблема и как ее устранить?

Romeo
22.04.2008, 12:10
Не являюсь экспертов в VCL, но подозреваю, что FormSize не является полным аналогом Windows сообщения WM_SIZE. Читай доки либо жди ответа от билдеровцов (делфийцев).

WinMain
22.04.2008, 23:38
Как мне кажется, вопросы по Delphi и C++ Bulder нужно объединить в один раздел форума. Поскольку большинство вопросов по C++ Builder связано с работой компонентов VCL, а не с языком программирования С++.