Класс TWinControl обеспечивает создание и использование оконных элементов управления (см. выше). Напомним, что оконный элемент управления имеет системный дескриптор окна hwnd. Однако оконными элементами являются не только формы и диалоги, но и большинство стандартных элементов управления.

 

Новые механизмы, инкапсулированные в классе, обеспечивают выполнение характерных для оконных элементов функций: прием и передачу фокуса, отклик на действия мышью и ввод с клавиатуры и т. д. Рассмотрим основные свойства и методы класса.

 

Дескриптор окна содержится в свойстве

 

property Handle: HWND;

 

При создании оконного элемента управления вызывается метод

 

procedure CreateParams(var Params: TCreateParams); virtual;

 

который заполняет структуру TCreateParams необходимыми значениями:

 

Code:

type

TCreateParams = record

Caption: PChar;

Style: DWORD;

ExStyle: DWORD;

X, Y: Integer;

Width, Height: Integer;

WndParent: HWND;

Param: Pointer

WindowClass: TWndClass;

WinClassName: array[0..63of Char;

end;

 

Для создания дескриптора окна для элемента управления используется метод

 

procedure CreateHandle; virtual;

 

Операционная система создает дескриптор окна только вместе с самим окном. Поэтому метод CreateHandle только создает окно, а для присваивания свойству Handle значения дескриптора окна вызывает метод createwnd.

 

Для передачи фокуса между элементами управления на одной форме часто используется клавиша <Таb>. Порядок перемещения фокуса между элементами определяется свойством

 

type TTabOrder = -1..32767; 

property TabOrder: TTabOrder;

 

В первую очередь фокус передается компоненту с минимальным значением свойства. Далее — по возрастанию значения. При переносе компонента на форму это значение задается автоматически в соответствии с числом компонентов на форме.

 

Компонент можно заставить не откликаться на клавишу <Таb>. Для этого свойству

 

property TabStop: Boolean;

 

необходимо присвоить значение False.

 

Для передачи фокуса прямо элементу управления применяется метод

 

procedure SetFocus; virtual;

 

Чтобы узнать, имеет ли элемент управления фокус, в настоящее время используется метод

 

function Focused: Boolean; dynamic;

 

Все оконные элементы имеют рамку по контуру (впрочем, она может быть не видна). Ее параметры задаются группой свойств:

 

property BevelEdges: TBevelEdges; 

задает, какие стороны входят в рамку;

 

property Bevellnner: TBevelCut; property BevelOuter: TBevelCut;

задают внешний вид рамки;

 

property BevelKind: TBevelKind;

определяет стиль рамки;

 

property BevelWidth: TBevelWidth;

задает размер рамки.

 

Свойство

 

property Brush: TBrush;

 

определяет параметры кисти (цвет и заполнение), которой рисуется фон элемента.

 

Оконный элемент может содержать другие компоненты. Для управления ими применяется индексированный список указателей, представляющих свойство

 

property Controls[Index: Integer]: TControl;

 

Общее число дочерних элементов управления содержится в свойстве

 

property ControlCount: Integer;

 

Внешний вид оконного элемента определяется свойством

 

property Ctl3D: Boolean

 

При значении True элемент управления имеет трехмерный вид. Иначе элемент выглядит плоским.

 

Для вызова темы контекстной помощи для конкретного элемента управления предназначено свойство

 

type THelpContext = -MaxLonglnt..MaxLonglnt;

 

property HelpContext: THelpContext;

 

Значение свойства должно соответствовать номеру темы в файле помощи.

 

В классе TwinControl добавлена возможность использования редакторов способа ввода (Input Method Editor, IME). Такие редакторы позволяют приспособить стандартную раскладку клавиатуры для символьных языков для ввода нестандартных символов (иероглифов и т. д.). Редакторы IMЕ представляют собой специально устанавливаемое в операционной системе программное обеспечение (ПО). Имя такого редактора задается в свойстве ImeName. Режим работы редактора определяется свойством ImeMode.

 

В классе TwinControl добавлено еще несколько методов-обработчиков событий, обеспечивающих реакцию на ввод с клавиатуры, получение и потерю фокуса.

Добавить комментарий

Не использовать не нормативную лексику.

Просьба писать ваши замечания, наблюдения и все остальное,
что поможет улучшить предоставляемую информацию на этом сайте.

ВСЕ КОММЕНТАРИИ МОДЕРИРУЮТСЯ ВРУЧНУЮ, ТАК ЧТО СПАМИТЬ БЕСПОЛЕЗНО!


Защитный код
Обновить