Продолжение. Начало в выпусках № 2,3,4
и на сайте.
Примеры:
Пусть у вас имеется на форме две панели Panel1 и Panel2 и вы хотите, чтобы
при любых изменениях размеров окна панель Panel1 занимала всю левую половину
формы, а Panel2 - всю правую. Вы можете это сделать следующим образом. Задайте
в обеих панелях Align = alCustom. Обе они в тот же момент переместятся в левый
верхний угол клиентской области формы. Далее напишите следующий код:
Type
TForm1 = class (TForm)
Panel1 : TPanel;
Panel2 : TPanel;
...
Procedure CustomAlignPosition (Control : TControl;
var NewLeft, NewTop, NewWidth, NewHeight
: Integer;
var AlignRect : TRect; AlignInfo : TAlignInfo);
begin
NewWidth := ClientWidth div 2;
NewHeight := ClientHeight;
If Control = Panel2
then NewLeft := ClientWidth
div 2;
end;
Вы ввели в класс формы обхявление перегруженной функции CustomAlignPosition.
В ее реализации вы задали для каждой панели ширину, равную половине ширины ClientWidth
клиентской области формы, и высоту, равную высоте ClientHeght клиентской области
формы. Кроме того вы сдвинули на половину ширины ClientWidth левую координату
панели Panel2.