Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторки 1-6 по Delphi.pdf
Скачиваний:
60
Добавлен:
08.04.2015
Размер:
1 Мб
Скачать
☆

Языки программирования

Класс TControl

Визуальные компоненты наследуют от TControl свойства, методы и события, связанные с установкой местоположения компонента на форме, особенностями взаимодействия с командными объектами TAction и всплывающим меню, оперативной подсказкой, откликами на события мыши (в том числе операцию перетаскивания drag and drop).

Принадлежность к родительскому контейнеру

В момент попадания элемента управления на форму проекта в первую очередь ему присваивается имя (свойство Name) и назначается владелец (свойство Owner). Затем для элемента управления назначается компонент-контейнер. Контейнер предоставит в распоряжение элементу управления часть своей поверхности (клиентской области). Элемент управления запоминает ссылку на родительский контейнер, для этого предназначено свойство

property Parent: TWinControl;

С ролью контейнера справится далеко не любой визуальный элемент управления. Для этого подойдут только оконные элементы (компоненты, предком которых выступает класс

TWinControl).

Размещение и размеры элемента управления

При размещении компонента на форме (или на любом другом компоненте, способном передавать свою клиентскую область в распоряжение элементов управления) следует учитывать, что в приложениях Windows за начальную точку системы координат (0, 0) принимается левый верхний угол клиентской части родительского контейнера. Из этой точки проведены две оси: ось x по горизонтали и по вертикали ось y. Ось x направлена слева направо, а ось y направлена сверху вниз

(рис. 4.3).

Width

ClientWidth

Height

ClientHeight

Left

Width

(0, 0)

x

 

Top

 

Height

 

y

 

Рис. 4.3. Размеры и местоположение элемента управления

Место и размеры элемента управления хранятся в свойствах

property Left: Integer;{расстояние от левого края контейнера до элемента} property Top: Integer; {расстояние от верхнего среза

клиентской области контейнера} property Height: Integer; {высота элемента управления} property Width: Integer; {ширина элемента управления}

Для выяснения (а в ряде случаев и переопределения) размеров клиентской области элемента управления или формы воспользуйтесь свойствами:

42

СКФУ Кафедра компьютерной безопасности

Языки программирования

property ClientHeight: Integer; //высота клиентской области property ClientWidth: Integer; //ширина клиентской области

События, связанные с изменением размеров

Некоторые потомки класса TControl обладают способностью реагировать на изменение своих размеров. Эта реакция выражается в форме трех последовательно вызываемых событий (табл. 4.2).

 

Таблица 4.2. События изменения размеров элемента управления

 

 

Событие

Описание

 

 

property OnCanResize:

Событие предваряет попытку элемента управления изменить

TCanResizeEvent;

свои габариты. Аргументы NewWidth и NewHeight содержат

type TCanResizeEvent =

новые предполагаемые размеры объекта. Программист

procedure(Sender: TObject;

может согласиться с этими размерами или отказаться от

var

NewWidth, NewHeight: Integer;

предложенных значений. Для этого следует воспользоваться

var

Resize: Boolean) of object;

последним параметром Resize

property OnConstrainedResize:

Контролирует, чтобы размеры элемента управления

TConstrainedResizeEvent;

оказались в пределах, определенных параметрами

type TConstrainedResizeEvent =

MinWidth, MinHeight, MaxWidth и MaxHeight

procedure(Sender: TObject;

 

var

MinWidth, MinHeight, MaxWidth,

 

MaxHeight: Integer) of object;

 

property OnResize: TNotifyEvent;

Уведомляет о том, что изменение размеров элемента

 

 

управления завершено

Выравнивание элемента управления в контейнере

Простейший и одновременно наиболее востребованный способ выравнивания элемента управления в границах клиентской области контейнера предоставляет свойство

property Align: TAlign; //по умолчанию выключено (Align=alNone)

Свойство обеспечивает выравнивание по левой, правой, верхней или нижней границам контейнера

(рис. 4.4).

Align=alTop

Align=alRight

Align=alLeft

Align=alClient

Align=alBottom

Рис. 4.4. Выравнивание элемента управления с помощью свойства Align

43

СКФУ Кафедра компьютерной безопасности