На этом шаге мы рассмотрим свойства, методы и события класса
TWinControl.
Свойства класса TWinControl
Методы класса TWinControl
События класса TWinControl
Класс TWinControl является базовым абстрактным классом для всех оконных компонентов Delphi, то есть для тех компонентов, которые:
Новые компоненты редко создаются непосредственно на основе TWinControl. Обычно они основываются на производных классах, таких, как TCustomControl, имеющий канву и обработку сообщений прорисовки, или на более специализированных классах типа TButtonControl, TCustomComboBox, TCustomEdit или TCustomListBox.
Ниже приведен список основных свойств, определенных или переопределенных в 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 и используемые в компонентах-потомках этого класса.
Метод | Описание |
---|---|
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.
Событие | Описание |
---|---|
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