Свойство Align указывает способ выравнивания размещаемого компонента относительно того контейнера, в котором он размещается. Контейнером называется компонент, предназначенный для размещения в нем других компонентов. Пустая форма представляет собой контейнер, в который помещаются другие компоненты. Таким же контейнером является компонент panel. Мы разместили на форме панель и в ее свойство Align установили значение alBottom (Внизу). После установки этого значения компонент (в данном случае - панель) прижимается к нижней границе формы и растягивается по всей ее длине. Теперь панель и все размещенные на ней компоненты будут примыкать к нижнему краю окна, даже если окно распахивается на весь экран. Если бы мы разместили строку ввода и кнопки не на панели, а непосредственно на форме, они не имели бы свойства перемещения и оставались бы на своих местах при изменении размеров окна [На самом деле это не совсем так. Компонент действительно не будет перемещаться при стандартных (умалчиваемых) значениях его свойства Anchors. Подробнее об этом см. п. 16.4.]. В результате значительная часть полностью распахнутого окна осталась бы пустой и не использовалась.

Anchors

С английского названия этого свойства переводиться как "якорь". Позволяет закрепить края компонента к краям родителя таким образом, чтобы при изменении размеров родителей расстояние между заданными краями оставалось постоянным. Свойство представляет собой множество (set). В инспекторе объектов редактируется как 4 вложенных свойства типа Boolean. По умолчанию выставлены только akTop и akLeft.

Чтобы понять, как это свойство работает, сделайте такие два эксперимента. Поставьте на форму панель (можно кнопку), сделайте размеры такими, чтобы компонент занимал по площади где-то половину формы и был размещён в центре. Выставьте все четыре подсвойства в True. Запустите программу и изменяйте мышкой размеры формы, понаблюдайте эффект. Также попробуйте выставлять только некоторые подсвойства равными True.

Применение свойства Delphi Constraints для таблицы StringGdid позвляет задать ограничение размеров таблицы по высоте:

   StringGrid1.Height<=StringGrid1.Constraints.MaxHeight;
   StringGrid1.Height>=StringGrid1.Constraints.MinHeight;

а также по ширине:

   StringGrid1.Width<=StringGrid1.Constraints.MaxWidth;
   StringGrid1.Width>=StringGrid1.Constraints.MinWidth;

    Свойство Constraints Delphi присутствует также не только в свойствах компонента StringGrid, но и в свойствах остальных визуальных компонентов Delphi,а также и самой Формы.

    Свойство StringGrid1.Constraints на этапе проектирования при разработке интерфейса позволяет следить за выходом размеров компонентов за заранее рассчитанные пределы.

    Попробуйте мышкой растащить края компонента StringGRid до величины, заведомо большей чем установленные в свойстве Constraints ограничения - как только вы отпустите кнопку мышки, компонент примет максимальные размеры согласно уставленным в свойстве Constraints.

    Однако в ходе работы программы при значении, например:

StringGrid1.Constraints.MaxWidth=500

применение оператора

StringGrid1.Width:=1000;

вызовет увеличение ширины компонента StringGrid1 именно до 1000 пикселов.

    Дело в том, что в программе свойство Constraints работает уже по-другому. В этом случае свойство Constraints служит для задания максимальных размеров компонента при его работе в интерфейсе Drag&Doc.

    При "причаливании" компонента StringGrid к другому оконному компоненту свойство Constraints задаёт максимальные размеры, которые может принять компонент StringGrid.

При использовании в компонентах свойства BorderWidth будте внимательны. В большинстве компонентов (ControlBar, ProgressBar, StatusBar, ToolBar, TrackBar и т.д.), это свойство реализовано некорректно. Можно получить забавные результаты или большие неприятности.

На рисунке показаны возможные варианты при использовании различных значений BorderWidth в компоненте ProgressBar. Высота компонента ProgressBar.Height = 16.

В последних двух вариантах вместо индикатора – изображение под активным окном. Не надейтесь, что компонент стал "прозрачным". Это "моментальный снимок" при создании окна.

Если есть желание, то некорректность можно исправить в ComCtrls.pas, переопределив BorderWidth.
TProgressBar = class(TWinControl)
private
  FBorderWidth: TBorderWidth;
  procedure SetBorderWidth(Value: TBorderWidth);
published
  property BorderWidth: TBorderWidth read FBorderWidth write SetBorderWidth;

...

constructor TProgressBar.Create(AOwner: TComponent);
begin
    FBorderWidth := inherited BorderWidth;
end;

procedure TProgressBar.SetBorderWidth(Value: TBorderWidth);
begin
  if Value > (Height div 2) - 3 then
    Exit
      if Value <> inherited BorderWidth then
    begin
      inherited BorderWidth := Value;
      FBorderWidth := inherited BorderWidth;
    end;
end;

Аналогичный подход можно использовать в других компонентах. В процедуре SetBorderWidth вместо Exit можно создать исключение, но это уже на любителя.
http://www.delphisources.ru/pages/faq/b … ssbar.html

Splitter, который позволяет легко осуществить это. Рассмотрим это на примере. Пусть вы хотите иметь в приложении форму, содержащую три панели, которые располагаются так, как показано на рис. 7.2. При изменении пользователем размеров окна панель Panel1 должна в любом случае занимать всю нижнюю часть окна, не увеличиваясь в высоту. Панель Panel2 должна занимать левую часть окна, изменяя при изменении размеров окна свою высоту, но не изменяя ширину. А панель Panel3 должна занимать всю оставшуюся часть окна. Кроме того мы хотим обеспечить пользователю возможность изменять положение границы между панелями Panel2 и Panel3, расширяя одну из этих панелей и соответственно сжимая другую

Выбор объектов в дизайнере форм

Выбрать объект очень просто - достаточно щёлкнуть по нему. Также объекты можно выбирать с помощью клавиатуры - достаточно нажать клавишу [Tab]. С помощью этой же клавиши можно далее последовательно выбирать все объекты, расположенные на форме. Иногда требуется выбрать сразу несколько объектов. Мышью это делается стандартным способом: не отпуская кнопку мыши очертить прямоугольную область. Все объекты, попавшие в эту область, окажутся выделенными. Для выбора произвольных объектов, не очерчивая область, достаточно удерживать клавишу [Shift] и щёлкать по нужным объектам.