Delphi World - это проект, являющийся сборником статей и малодокументированных возможностей  по программированию в среде Delphi. Здесь вы найдёте работы по следующим категориям: delphi, delfi, borland, bds, дельфи, делфи, дэльфи, дэлфи, programming, example, программирование, исходные коды, code, исходники, source, sources, сорцы, сорсы, soft, programs, программы, and, how, delphiworld, базы данных, графика, игры, интернет, сети, компоненты, классы, мультимедиа, ос, железо, программа, интерфейс, рабочий стол, синтаксис, технологии, файловая система...
Урок 3 - Чтоб все было опрятно или расположение обьектов на форме

Ведущий раздела KOL и MCK: Анатолий aka XVeL
Автор: Борис Моренко
WEB-сайт: http://kol.mastak.ru

Полную версию библиотеки KOL и MCK можно скачать здесь.

Обсудим свойства отвечающие за расположение объектов на форме.

Свойства Width и Height отвечают за длину и высоту соответственно.
Если вам надо поменять одновременно длину и высоту можно воспользоваться SetSize(w,h:integer).
Бывают случаи, что объект может выходить за пределы своего родительского объекта, тогда можно воспользоваться свойством Size(w,h:integer). Оно устанавливает размер родительского объекта, таким же, как и самого объекта. Например:

var
  Form, Button: PControl;

begin
   Form  := NewForm(Applet, 'Пример');
   Button := NewButton(form, 'Кнопка').Size (120, 50);
   Run(Form);
end.

Приведет к следующему результату

CenterOnParent - размещает объект посередине родительского.

Для изменения размера родительского объекта по контуру объекта, применяют также свойства ResizeParent (по правой и нижней стороне объекта), ResizeParentRight (по правой стороне), ResizeParentBottom (по нижней)

Таким образом REdit.Size(120,50) имеет такой же результат как совместное действие строк:
REdit.SetSize(120,50) ;
REdit.ResizeParent;

В VCL у некоторых объектов есть свойство Align. Его аналоги в KOL это Align:TControlAlign и SetAlign(AAlign:TControlAlign). TControlAlign может принимать следующие значения:
caNone, caLeft, caTop, caRight, caBottom, caClient

В KOL также есть группа свойств, которые описывают положение объекта относительно объекта который был создан первым.
PlaceRight (справа относительно первого), PlaceDown (снизу), PlaceUnder (абсолютно под первым объектом)
На рис.1 (PlaceDown) и рис.2 (PlaceUnder) показана разница между этими свойствами:

var
  Form, cont, cont1: PControl;
...
form := NewForm(Applet,'Пример');
form.SetSize(130, 140);

cont := NewPanel(form, esRaised).Shift(20, 0).SetSize(50, 50);
cont1 := NewPanel(form, esRaised).SetSize(50, 50);
cont1.PlaceDown; // на этом месте может быть и cont1.PlaceUnder
рис.1(PlaceDown) рис.2(PlaceUnder)

 

Перемещать объект на форме можно обращаясь к свойствам Left и Top (отступ от левого - верхнего угла в лево и вниз соответственно). Чтобы изменить одновременно эти свойства, надо воспользоваться свойством Shift(dX,dY:integer).

И так подведем итог:

Cвойство Описание
SetSize или Size устанавливает длину и высоту объекта
ResizeParent Изменение размера родительского объекта относительно объекта
ResizeParentRight Изменение размера родительского объекта относительно объекта по вертикали
ResizeParentBottom Изменение размера родительского объекта относительно объекта по горизонтали
CenterOnParent Размещение объекта посредине родительского объекта
Align и SetAlign "Разлив" (выравнивание) объекта относительно родительского
Shift устанавливают положение объекта на форме
PlaceRight справа - положение объекта относительно созданного первым .
PlaceDown и PlaceUnder снизу - положение объекта относительно созданного первым .
Проект Delphi World © Выпуск 2002 - 2004
Автор проекта: ___Nikolay