Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Книга о KOL.doc
Скачиваний:
29
Добавлен:
30.04.2019
Размер:
1.77 Mб
Скачать

2.23.4. Позиция и размеры

Align - "выравнивание" оконного объекта на родительском окне. Значения те же, что и в VCL для свойства Align, доступного в VCL для некоторых классов оконных объектов. Основное отличие от VCL в том, что в KOL возможно выравнивать практически все типы "контролов" (пожалуй, за небольшим исключением, а именно: нежелательно пытаться выравнивать combo box по высоте, так как это может привести к неприятным последствиям в Windows 9x). Если задано выравнивание, не равное caNone, то некоторые из характеристик граничного прямоугольника (ниже) не могут быть изменены и контролируются выравниванием (например, если окно выровнено влево - caLeft, то возможно изменить только ширину окна, но не высоту и не координату левого верхнего угла);

SetAlign( align ) - "сквозной метод", устанавливающий свойство Align и возвращающий указатель на сам оконный объект. "Сквозные" методы удобно применять при создании оконных объектов, например:

NewButton( Panel1, 'Button1' ).SetAlign( caLeft ).OnClick := Click1;

BoundsRect - прямоугольник, задающий (и возвращающий) координаты оконного объекта относительно родительского окна (или относительно всего экрана - для окон верхнего уровня, т.е. для формы и апплета); Имеются так же свойства для отдельного доступа/изменения каждой из координат окна в терминах "позиция левого верхнего угла"/"ширина"/"высота":

Left - левая координата окна;

Top - верхняя координата окна;

Width - ширина окна;

Height - высота окна;

ControlRect - то же, что и BoundsRect, но вычисляется по хранящимся координатам, а не путем обращения к API;

Position - координаты верхнего левого угла окна как точка (TPoint);

ControlAtPos( X, Y, IgnoreDisabled ) - определяет, какой (дочерний) визуальный объект расположен по данным координатам;

OnMove - событие, срабатывающее при изменении координат (при движении окна на экране);

Dragging - проверяет, выполняется ли в данный момент "перетаскивание" окна объекта с помощью мыши (true после вызова DragStartEx);

DragStart - начинает "перетаскивание" окна объекта (контрола или формы) с помощью мыши. Перетаскивание заканчивается, когда пользователь отпускает левую клавишу мыши (если в момент вызова метода левая клавиша мыши не нажата, то перетаскивание и не начинается);

DragStartEx - аналогично предыдущему, но для прекращения перетаскивания из программы требуется (и возможно) вызывать процедуру DragStopEx;

PlaceRight - "сквозной" метод, размещающий текущий объект справа от предыдущего в списке (на расстоянии, заданном свойством родителя);

PlaceDown - "сквозной" метод, размещающий объект ниже предыдущего, левая координата устанавливается в крайнюю левую доступную позицию (Border+Margin родителя), а верхняя координата обеспечивается ниже нижнего края всех предыдущих визуальных объектов;

PlaceUnder - "сквозной" метод, который размещает объект непосредственно под предыдущим (не обращая внимания на все прочие до этого размещенные);

Border – короткое целое число (от –128 до +127), задающее ширину бордюра родительского окна. Это свойство используется и для целей выравнивания, и для вышеперечисленных функций размещения PlaceXXXX - для обеспечения расстояния между дочерними по отношению к данному контролу визуальными объектами. Т.е., в отличие от VCL, при выравнивании дочерних визуальных объектов, между ними обеспечивается заданное свойством Border родителя пространство. (См. так же свойства MarginXXXX);

MarginTop – короткое целое число, задающее дополнительное расстояние (складываемое с Border) от верхнего края клиентской части родительского окна до первого дочернего окна, при его автоматическом размещении (например, при выравнивании дочерних визуальных объектов с помощью свойства Align). Данное число может быть и отрицательным;

MarginBottom - аналогично MarginTop, но задает дополнительное расстояние от нижнего края родительского визуального объекта;

MarginLeft - аналогично MargintTop, но для левого края родительского окна;

MarginRight - аналогично MarginTop, но для правого края родительского объекта;

SetSize( W, H ) - "сквозной" метод, позволяет установить новый размер окна (если W или H не превосходит нуля, соответствующий размер не меняется);

Size( W, H ) - аналогично предыдущему, но автоматически изменяет соответствующим образом размеры родительского окна (и всех родительских окон - рекурсивно);

AutoSize( on ) - включает или выключает автоматическую подгонку размеров окна под его содержимое (в отличие от VCL, такое автоматическое изменение размеров в KOL имеет место не только для "метки" TLabel, как в VCL, но для несколько большего количества визуальных объектов - кнопок, флажков check box и radio box, например);

IsAutoSize - проверяет, включено ли для объекта автоматическое изменение размеров;

CanResize - задает, может ли окно изменять свой размер (не только пользователь мышью или из системного меню окна, но и любой вызов API не сможет изменить размеры окна, для которого свойству CanResize присвоен false: следует быть внимательным, и устанавливать это значение в false только после того, как размеры окна уже заданы). В MCK-зеркале формы (класс TKOLForm) имеется соответствующее свойство времени разработки CanResize, установка которого в false приведет к добавлению в код инициализации формы присваивания false свойству CanResize формы - после того, как размеры формы определены;

MinHeight - минимальная высота окна;

MinWidth - минимальная ширина окна;

MaxHeight - максимальная высота окна;

MaxWidth - максимальная ширина окна;

OnResize - событие, срабатывающее при изменении размеров окна объекта, по любой причине;

AnchorRight - установка для этого свойства значения true приводит к тому, что положение правого края визуального объекта привязывается к размеру родительского "контрола";

AnchorBottom - аналогично предыдущему, но привязывает нижний край объекта к высоте родителя;

AnchorTop – аналогично предыдущим, но привязывает окно к верхней кромке родителя; AnchorLeft – то же, но привязка происходит к левой кромке родительского окна;

Anchors( L, T, R, B ) - "сквозной" метод, позволяющий задать привязку AnchorLeft, AnchorTop, AnchorRight или AnchorBottom за один вызов;

ClientRect - возвращает координаты клиентской части окна. Т.к. результат возвращается в координатах самой клиентской части, то для всех оконных, объектов, кроме "графических", поля Left и Top возвращенного прямоугольника всегда равны 0;

ClientWidth - ширина клиентской части окна (в том числе ее можно изменить через это свойства: соответственно будет изменена и ширина всего окна);

ClientHeight - аналогично предыдущему свойству, высота клиентской части окна;

SetClientSize( W, H ) - аналогично SetSize, но изменяет размеры в терминах клиентской части окна;

Client2Screen( P ) - транслирует координаты точки из клиентской системы координат в координаты на экране;

Screen2Client( P ) - обратно методу Client2Screen, для заданных координат на экране возвращает клиентские координаты точки.