Шаг 17.
Состав класса TWinControl

    На этом шаге мы рассмотрим свойства, методы и события класса TWinControl.

Свойства класса TWinControl
Методы класса TWinControl
События класса TWinControl



    Класс TWinControl является базовым абстрактным классом для всех оконных компонентов Delphi, то есть для тех компонентов, которые:

    Новые компоненты редко создаются непосредственно на основе TWinControl. Обычно они основываются на производных классах, таких, как TCustomControl, имеющий канву и обработку сообщений прорисовки, или на более специализированных классах типа TButtonControl, TCustomComboBox, TCustomEdit или TCustomListBox.

Свойства класса TWinControl

    Ниже приведен список основных свойств, определенных или переопределенных в TWinControl. Некоторые свойства, используемые в основном при разработке сложных новых классов, в него не включены.

   
Таблица 1. Свойства класса TWinControl
Свойство Описание
property Brush: TBrush; Определяет цвет и стиль заполнения фона окна. Свойство только для чтения.
property ClientOrigin: TPoint; Экранные координаты левого верхнего угла клиентской области компонента. Свойство только для чтения.
property ClientRect: TRect; Содержит размер клиентской области компонента. Свойство только для чтения.
property ControlCount: Integer; Число дочерних компонентов данного оконного элемента. Свойство только для чтения.
property Controls: TControl; Массив дочерних компонентов оконного элемента. Свойство только для чтения.
property Ctl3D: Boolean; Определяет, будет ли компонент выглядеть объемным или плоским.
property Handle: HWND; Дескриптор оконного элемента, используемый при вызове функций API Windows. Свойство только для чтения.
property HelpContext: THelpContext; Номер контекстно-зависимой встроенной справки.
property ImeMode: TImeMode;
property ImeName: String;
Определяют обработку символов в редакторах. Обычно значения по умолчанию не изменяют.
property ParentCtl3D: Boolean; Управляет наследованием родительского свойства Ctl3D.
property ParentWindow: HWnd; Дескриптор родительского окна, не являющегося визуальным компонентом, например, TActiveXControl. Если свойство Parent не nil, то значение ParentWindow игнорируется.
property Showing: Boolean; Определяет, виден ли компонент в данный момент. Свойство только для чтения.
property TabOrder: TTabOrder; Указывает позицию компонента в последовательности табуляции.
property TabStop: Boolean; Определяет, может ли пользователь перевести фокус на компонент клавишей табуляции.
property WindowHandle: HWND; То же самое, что Handle, но это свойство можно читать и изменять.

    Класс TWinControl наследует также много свойств своих предшественников.

    К оглавлению

   

Методы класса TWinControl

    Ниже приведены основные методы, наследуемые от TWinControl и используемые в компонентах-потомках этого класса.

   
Таблица 2. Методы класса TWinControl
Метод Описание
function CanFocus: Boolean; dynamic; Определяет, может ли компонент получать фокус, то есть получать сообщения пользователя.
procedure ChangeScale(M, D: Integer); override; Изменяет масштаб компонента и его дочерних компонентов.
function ContainsControl(Control: TControl): Boolean; Определяет, является ли указанный компонент прямым или косвенным наследником данного оконного элемента.
function ControlAtPos(const Pos: TPoint; AllowDisabled: Boolean, AllowWinControls:Boolean=False): TControl; Возвращает дочерний компонент, находящийся в указанной позиции.
procedure DisableAlign; Временно запрещает выравнивание компонентов в оконном элементе.
procedure EnableAlign; Отменяет действие предварительно вызванного метода DisableAlign и вызывает Realign для выравнивания компонентов.
function FindNextControl(CurControl: TWinControl; GoForward, CheckTabStop, CheckParent: Boolean): TWinControl; Возвращает очередной оконный компонент в последовательности табуляции.
function Focused: Boolean; dynamic; Определяет, находится ли оконный элемент в фокусе.
procedure GetTabOrderList (List: TList); Строит список дочерних компонентов в последовательности табуляции.
function HandleAllocated: Boolean; Проверяет наличие дескриптора окна компонента.
procedure HandleNeeded; Создает дескриптор окна, если он до этого не существовал.
procedure Invalidate; override; Сообщает о необходимости перерисовки компонентов.
procedure Realign; Выравнивает компоненты в оконном элементе.
procedure Repaint; override; Перерисовывает изображение компонента на экране с помощью Invalidate.
procedure ScaleBy (M, D: Integer); Масштабирует оконный элемент и все содержащиеся в нем компоненты.
procedure ScaleControls(M, D: Integer); Изменяет масштаб компонентов в оконном элементе, не изменяя масштаба самого оконного элемента.
procedure ScrollBy (DeltaX, DeltaY: Integer); Сдвигает содержимое оконного элемента.
procedure SelectFirst; Передает фокус дочернему компоненту, первому в последовательности табуляции.
procedure SelectNext; Передает фокус компоненту, следующему в последовательности табуляции.
procedure SetBounds(ALeft, ATop, AWidth, AHeight: Integer); override; Задает координаты и размеры элемента.
procedure SetChildOrder(Child: TComponent; Order: Integer); override; Изменяет позицию компонента в списке дочерних компонентов.
procedure SetFocus; virtual; Передает фокус элементу (активизирует его).
procedure SetZOrder(TopMost: Boolean); override; Перемещает компонент вверх или вниз относительно других компонентов.
procedure Update; override; Немедленная перерисовка компонента.

    К оглавлению

   

События класса TWinControl

    Перечислим основные события, реализованные в классе TWinControl.

   
Таблица 3. События класса TWinControl
Событие Описание
property OnEnter: TNotifyEvent; Событие при получении элементом фокуса.
property OnExit: TNotifyEvent; Событие при потере элементом фокуса.
property property OnKeyDown: TKeyEvent;
type TKeyEvent = procedure (Sender: TObject; var Key: Word; Shift: TShiftState) of object;
Событие при нажатии любой клавиши или кнопки мыши.
property OnKeyPress: TKeyPressEvent;
type TKeyPressEvent = procedure (Sender: TObject; var Key: Char) of object;
Событие при нажатии клавиши символа.
property OnKeyUp: TKeyEvent; Событие при отпускании клавиши.

    К оглавлению

    На следующем шаге мы рассмотрим назначение и состав класса TApplication.




Свойства класса TWinControl Методы класса TWinControl События класса TWinControl




Предыдущий шаг Содержание Следующий шаг