Класс TControl. Группа свойств Visual. Местоположение и размер элемента управления.
Класс TControi является базовым для всех визуальных компонентов и инкапсулирует механизмы отображения компонента на экране. В нем используется множество новых свойств и методов. Недаром в Delphi в Инспекторе объектов появилась категоризация методов и свойств (рис. 2.2). Большинство из них вводятся как раз в классах TControl и TWinControl.
Рис. 2.2. Категории свойств визуального компонента.
Рассмотрим только важнейшие свойства и методы по категориям.
Группа свойств Visual. Местоположение и размер элемента управления.
Для определения местоположения и размеров визуального компонента введены два опубликованных свойства для задания координат левого верхнего угла.
Для представления их в таком виде нужно отметить флажок 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;
Возвращает размеры прямоугольника рабочей области.