Класс TWinControl
Класс TWinControl обеспечивает создание и использование оконных элементов управления (см. выше). Напомним, что оконный элемент управления имеет системный дескриптор окна hwnd. Однако оконными элементами являются не только формы и диалоги, но и большинство стандартных элементов управления.
Новые механизмы, инкапсулированные в классе, обеспечивают выполнение характерных для оконных элементов функций: прием и передачу фокуса, отклик на действия мышью и ввод с клавиатуры и т. д. Рассмотрим основные свойства и методы класса.
Дескриптор окна содержится в свойстве:
property Handle: HWND;
При создании оконного элемента управления вызывается метод:
procedure CreateParams(var Params: TCreateParams); virtual;
Который заполняет структуру TCreateParams необходимыми значениями:
type TCreateParams = record Caption: PChar; Style: DWORD; ExStyle: DWORD; X, Y: Integer; Width, Height: Integer; WndParent: HWND; Param: Pointer WindowClass: TWndClass; WinClassName: array[0..63] of Char; end;
Для создания дескриптора окна для элемента управления используется метод:
procedure CreateHandle; virtual;
Операционная система создает дескриптор окна только вместе с самим окном. Поэтому метод CreateHandle только создает окно, а для присваивания свойству Handle значения дескриптора окна вызывает метод createwnd.
Для передачи фокуса между элементами управления на одной форме часто используется клавиша Таb. Порядок перемещения фокуса между элементами определяется свойством:
type TTabOrder = -1..32767; property TabOrder: TTabOrder;
В первую очередь фокус передается компоненту с минимальным значением свойства. Далее – по возрастанию значения. При переносе компонента на форму это значение задается автоматически в соответствии с числом компонентов на форме.
Компонент можно заставить не откликаться на клавишу Таb. Для этого свойству:
property TabStop: Boolean;
Необходимо присвоить значение False.