Класс TControl является родоначальником всех визуальных компонентов. Он инкапсулирует множество свойств методов и событий, типичных для такого рода компонентов: положение, размеры, форма указателя мыши, оперативная подсказка и т. п.

3.3.1. Свойства класса

Свойства класса TControl перечислены далее, property Action: TBasicAction;
Определяет связанный с компонентом объект действия, property ActionLink: TControlActionLink;

Определяет механизм связи компонента с объектом действия.

type TAlign * (alNone, alTop, alBottom, alLeft, alRight, alClient, alCustom);
property Align: TAlign;
Определяет выравнивание компонента относительно границ его родителя, type TAnchors - eat of TAnchorKind;
type TAnchorKind « (akTop, akLeft, akRight, akBotftom);
property Anchors: TAnchors;

Определяет реакцию компонента на изменение размеров его родителя.

property BoundsRect: TRect;

Определяет граничный прямоугольник компонента в координатах его родителя.

property Caption: TCaption;
Содержит текстовую строку для надписи на компоненте, property ClientHeight: Integer;

Высота клиентской (рабочей) области компонента в пикселах.

property ClientOrigin: TPoint;

Положение верхнего левого угла рабочей области компонента в координатах его родителя.

property ClientRect: TRect;
Размер (в пикселах) рабочей области компонента, property ClientWidth: Integer;
Ширина рабочей области компонента в пикселах, property Color: TColor;
Цвет компонента, property Constraints: TSizeConstraints;

Определяет ограничения на возможные изменения размеров компонента.

type TControlState = set of (csLButtonDown, csClicked, csPalette, csReadingState, csAlignmentNeeded, csFocusing, csCreating, csPaintCopy, csCustomPaint, csDestroyingHandle, csDocking,);
property ControlState: TControlState;

Определяет состояние компонента.

type TControlStyle = set of (csAcceptsControls, csCaptureMouse, csDesignlnteractive, csClickEvents, csFramed, csSetCaption, csOpaque, csDoubleClicks, csFixedWidth, csFixedHeight, csNoDesignVisible, csReplicatable, csNoStdEvents, csDisplayDraglmage, csReflector, csActionClient, csMenuEvents);
property ControlStyle: TControlStyle;

Определяет стиль компонента.

property Cursor: TCursor;

Определяет форму указателя мыши при перемещении его на компоненте.

type TDragMode e (dmManual, dmAutomatic);
property DragMode: TDragMode;

Определяет способ выполнения компонентом операций перетаскивания (Drag& Drop) и причаливания к краям окна (Drag&Dock).

property DragObject: TDragObject;

Содержит объект, участвующий в операции перетаскивания.

property Enabled: Boolean;

Если содержит True, компонент может реагировать на события клавиатуры, мыши и таймера.

property Floating: Boolean;
Указывает, поддерживает ли компонент операцию причаливания, property Font: TFont;
Определяет шрифт надписи на компоненте, property Height: Integer;

Высота компонента в пикселах.

property HelpContext: THelpContext;

Числовой идентификатор связанного с компонентом раздела контекстной помощи.

property HelpFile: string;
Маршрут доступа к файлу контекстной помощи, property HelpKeyword: String;

Ключевое слово связанного с компонентом раздела контекстной помощи.

type THelpType = (htKeyword, htContext);
property HelpType: THelpType;

Тип доступа к контекстной помощи.

property Hint: string;

Содержит оперативную подсказку.

property Left: Integer;

Расстояние (в пикселах) левой стороны компонента от левой стороны родителя.

property MouseCapture: Boolean;

Если содержит True, компонент будет реагировать на события мыши, даже если указатель находится вне границ компонента.

property Parent: TWinControl;
Ссылка на родительский компонент, property ParentColor: Boolean;
Если содержит True, компонент будет иметь цвет его родителя, property ParentFont: Boolean;

Если содержит True, компонент будет иметь шрифт его родителя.

property ParentShowHint: Boolean;

Если содержит True, компонент будет иметь оперативную подсказку его родителя.

property PopupMenu: TPopupMenu;

Ссылка на связанное с компонентом контекстное меню.

type TScalingFlags * set of (sfLeft, sfTop, sfWidth, sfHeight, sfFont, sfDesignSize);
property ScalingFlags: TScalingFlags;
Свойство для внутреннего использования, property ShowHint: Boolean;
Разрешает (запрещает) показ всплывающей подсказки, property Text: TCaption;
Содержимое связанной с компонентом текстовой строки, property Top: Integer;
Расстояние от верхнего края компонента до верхнего края родителя, property Visible: Boolean;
Если содержит True, компонент виден на экране, property Width: Integer;

Ширина компонента.

В классе вводится свойство Parenet, содержащее ссылку на родительский компонент. Собственник (Owner) ответственен за уничтожение всех компонентов из списка Components при своем уничтожении. Родительским (Parent) называется визуальный компонент, который служит контейнером для данного компонента. Часто родительский компонент одновременно является и владельцем, но, вообще говоря, это не обязательно. Например, главное окно программы может создать кнопку TButton, то есть быть собственником этого компонента, но поместить его в панель ТPanel, которая становится родителем кнопки:

procedure TForml.FormCreate(Sender: TObject); var Btn: TButton; begin Btn := TButton.Create(Self); // Владелец кнопки - окно Btn.Parent := Panell // Родитель кнопки - панель

end;

Родитель ответственен за поведение на экране своих дочерних компонентов. Он способен перехватывать сообщения Windows, то есть является потомком TWinControl. Если убрать последний оператор в примере, кнопка не будет знать своего родителя и, в частности, не узнает, что пора отрисовать себя в момент отрисовки панели.

Свойство ControlState содержит набор флагов, описанных в табл. 3,3.

Таблица 3.3. Флаги свойства ControlState

Флаг

Описание

csLButtonDown

Левая кнопка мыши нажата, но не отпущена

csClicked

То же, что и csLButtonDown, но означает, что события мыши будут

интерпретироваться как щелчок на компоненте

csPalette

Компонент изменяет свою палитру после изменения системной палитры

csReadingState

Компонент читает значения своих свойств из потока

csAlignmentNeeded

Компонент нуждается в изменении выравнивания в ответ на изменение

свойства Align

csFocusing

Компонент получает фокус ввода

csCreating

Создаются компонент и (или) его собственник и дочерние компоненты

csPaintCopy

Компонент скопирован и отрисовывается копия

csCustomPaint

Компонент обрабатывает пользовательское требование отрисовки

csDestroyingHandle

Компонент будет разрушен

csDocking

Компонент реализует операцию причаливания

В табл. 3.4 показаны флаги свойства ControlStyle.

Оба свойства (ControlState и ComponentStyle) широко используются при написании собственных компонентов. Флаги свойства ComponentStyle обычно устанавливаются в конструкторе компонента и не меняются в его методах.

Таблица 3.4. Флаги свойства ControlStyle

Флаг

Описание

csAcceptsControls

Компонент становится родительским по отношению к любым помещенным

на него компонентам (только для потомков TWInControl)

csCaptureMouse

Компонент реагирует на события мыши, даже если они происходят

вне его границ

csDesignlnteractive

Во время проектирования щелчки правой кнопкой мыши интерпретируются

как щелчки левой кнопкой

csClickEvents

Когда на компоненте нажата и отпущена кнопка мыши, генерируется

событие OnClick

csFramed

Компонент имеет рамку

csSetCaption

Свойства Caption и Text совпадают со свойством Name до тех пор, пока

не будут изменены

csOpaque

Компонент непрозрачен

csDoubleCiicks

При двойном щелчке генерируется событие OnDblClick

csFixedWidth

Масштабирование не влияет на ширину компонента

csFixedHeight

Масштабирование не влияет на высоту компонента

csNoDesignVtsibte

Компонент не виден на этапе конструирования

csReplicatable

Компонент может быть скопирован методом PaintTo

csNoStdEvents

Компонент не реагирует на стандартные события от мыши и клавиатуры

csDisplayDraglmage

Если при выполнении операции перетаскивания на компоненте перемещается

объект ImageList, указатель мыши получает вид csMuitiDrag

csReflector

Компонент реагирует на сообщения Windows

csReplicatable

Компонент может копироваться методом PaintTo класса TWinControl

csActionClient

Компонент связан с объектом действий

csMenuEvents

Компонент реагирует на команды меню

3.2.2. Методы класса TComponent || Оглавление || 3.3.2. Методы класса TControl


Искусство создания компонентов Delphi



Новости за месяц

  • Июль
    2019
  • Пн
  • Вт
  • Ср
  • Чт
  • Пт
  • Сб
  • Вс