void __fastcall TForm1::FormResize(TObject *Sender)
{
if(this->WindowState != wsMinimized)
{
int hc = this->ClientHeight;
int h1 = hc / 3;
Panel1->Height = h1;
Panel2->Height = hc - h1;
}
}
Динамическое изменение размеров Panel'ей
Надо чтобы при изменении размеров окна (любым способом) соответсвенно изменялись и размеры Panel'ей в превоначальных пропорциях (т.е. чтобы между ними не появился разрыв, чтобы одна Panel не "легла" на другую,..).
Пытаюсь сделать желаемое с помощью Anchors. У верхней панели всё выставил в thrue. У нижней пробовал по разному, но результат один: при максимизации окна всё нормально (также как и при любых манипуляциях мышью за край окна), а при возвращении из максимального состояния окна в первоначальное ниженяя Panel "уходит" большей частью под верхнюю Panel.
Код:
DFM:
Код:
object Form1: TForm1
Left = 279
Top = 107
Width = 783
Height = 540
Caption = 'Form1'
Color = clBtnFace
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -11
Font.Name = 'MS Sans Serif'
Font.Style = []
OldCreateOrder = False
OnResize = FormResize
PixelsPerInch = 96
TextHeight = 13
object Panel1: TPanel
Left = 0
Top = 0
Width = 775
Height = 41
Align = alTop
Caption = 'Panel1'
TabOrder = 0
end
object Panel2: TPanel
Left = 0
Top = 472
Width = 775
Height = 41
Align = alBottom
Caption = 'Panel2'
TabOrder = 1
end
end
Left = 279
Top = 107
Width = 783
Height = 540
Caption = 'Form1'
Color = clBtnFace
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -11
Font.Name = 'MS Sans Serif'
Font.Style = []
OldCreateOrder = False
OnResize = FormResize
PixelsPerInch = 96
TextHeight = 13
object Panel1: TPanel
Left = 0
Top = 0
Width = 775
Height = 41
Align = alTop
Caption = 'Panel1'
TabOrder = 0
end
object Panel2: TPanel
Left = 0
Top = 472
Width = 775
Height = 41
Align = alBottom
Caption = 'Panel2'
TabOrder = 1
end
end