Иллюстрированный самоучитель по Delphi 7 для профессионалов

Класс 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.

Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.