Библиотека визуальных компонентов VCL и ее базовые классы
Группа свойств Visual. Местоположение и размер элемента управления
Для определения местоположения и размеров визуального компонента введены два опубликованных свойства для задания координат левого верхнего
угла:
Рис. 2.2. Категории свойств
визуального компонента.
Для представления их в таком виде нужно отметить
флажок By Category в пункте меню Arrange всплывающего меню Инспектора объектов
property Top:
Integer;
property Left:
Integer;
и два опубликованных свойства для определения
размеров:
property Height:
Integer;
property Width:
Integer;
Значения свойств задаются в пикселах. Для определения
местоположения используется система координат рабочей области владельца данного
компонента. Начало отсчета находится в левом верхнем углу. Оси направлены вправо
и вниз. Под рабочей областью понимается та часть площади владельца (формы, панели),
которая предназначена для размещения дочерних элементов. Эти свойства можно
использовать как на этапе разработки, так и во время выполнения.
Свойство
property ClientOrigin:
TPoint;
содержит координаты левого верхнего угла элемента
управления в системе координат экрана. Координаты любой точки можно пересчитать
в экранные при помощи метода
function ClientToScreen(const
Point: TPoint): TPoint;
и наоборот:
function ScreenToClient(const
Point: TPoint): TPoint;
Для приведения компонента в соответствие текущим
значениям указанных выше свойств используется метод
procedure AdjustSize;
dynamic;
Параметры рабочей области компонента определяются
следующими свойствами:
property ClientHeight: Integer;
определяет высоту рабочей области в пикселах.
property ClientWidth: Integer;
определяет ширину рабочей области в пикселах.
property ClientRect: TRect;
значение которого есть не что иное, как (0,
0, .clientwidth, ClientHeight). Кому-то будет удобнее пользоваться этим
свойством.
Если разработчику неизвестны текущие параметры
рабочей области, то он может воспользоваться следующими методами.
Функция
function GetClientOrigin:
TPoint; virtual;
возвращает координаты левого верхнего угла рабочей
области. Функция
function GetClientRect:
TRect; virtual;
возвращает размеры прямоугольника рабочей области.
Знаете ли Вы, что абстракция через спецификацию - это прием программирования, позволяющий абстрагироваться от процесса вычислений описанных в теле процедуры, до уровня знания того, что данная процедура делает. Это достигается путем задания спецификации, описывающей эффект ее работы, после чего смысл обращения к данной процедуре становится ясным через анализ этой спецификации, а не самого тела процедуры. Мы пользуемся абстракцией через спецификацию всякий раз, когда связываем с процедурой некий комментарий, достаточно информативный для того, чтобы иметь возможность работать без анализа тела процедуры. Абстракция через спецификацию позволяет абстрагироваться от процесса вычислений описанных в теле процедуры, до уровня знания того, что данная процедура делает. Это достигается путем задания спецификации, описывающей эффект ее работы, после чего смысл обращения к данной процедуре становится ясным через анализ этой спецификации, а не самого тела процедуры. Мы пользуемся абстракцией через спецификацию всякий раз, когда связываем с процедурой некий комментарий, достаточно информативный для того, чтобы иметь возможность работать без анализа тела процедуры.