Класс TWinControl и TControlDelphi , Компоненты и Классы , КлассыКласс TWinControlКласс TWinControl обеспечивает создание и использование оконных элементов управления (см. выше). Напомним, что оконный элемент управления имеет системный дескриптор окна hwnd. Однако оконными элементами являются не только формы и диалоги, но и большинство стандартных элементов управления. Новые механизмы, инкапсулированные в классе, обеспечивают выполнение характерных для оконных элементов функций: прием и передачу фокуса, отклик на действия мышью и ввод с клавиатуры и т. д. Рассмотрим основные свойства и методы класса. Дескриптор окна содержится в свойстве
При создании оконного элемента управления вызывается метод
который заполняет структуру TCreateParams необходимыми значениями:
Для создания дескриптора окна для элемента управления используется метод
Операционная система создает дескриптор окна только вместе с самим окном. Поэтому метод CreateHandle только создает окно, а для присваивания свойству Handle значения дескриптора окна вызывает метод createwnd. Для передачи фокуса между элементами управления на одной форме часто используется клавиша <Таb>. Порядок перемещения фокуса между элементами определяется свойством
В первую очередь фокус передается компоненту с минимальным значением свойства. Далее — по возрастанию значения. При переносе компонента на форму это значение задается автоматически в соответствии с числом компонентов на форме. Компонент можно заставить не откликаться на клавишу <Таb>. Для этого свойству
необходимо присвоить значение False. Для передачи фокуса прямо элементу управления применяется метод
Чтобы узнать, имеет ли элемент управления фокус, в настоящее время используется метод 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 элемент управления имеет трехмерный вид. Иначе элемент выглядит плоским. Для вызова темы контекстной помощи для конкретного элемента управления предназначено свойство
Значение свойства должно соответствовать номеру темы в файле помощи. В классе TwinControl добавлена возможность использования редакторов способа ввода (Input Method Editor, IME). Такие редакторы позволяют приспособить стандартную раскладку клавиатуры для символьных языков для ввода нестандартных символов (иероглифов и т. д.). Редакторы IMЕ представляют собой специально устанавливаемое в операционной системе программное обеспечение (ПО). Имя такого редактора задается в свойстве ImeName. Режим работы редактора определяется свойством ImeMode. В классе TwinControl добавлено еще несколько методов-обработчиков событий, обеспечивающих реакцию на ввод с клавиатуры, получение и потерю фокуса. Класс TControlКласс TControi является базовым для всех визуальных компонентов и инкапсулирует механизмы отображения компонента на экране. В нем используется множество новых свойств и методов. Недаром в Delphi в Инспекторе объектов появилась категоризация методов и свойств (рис. 2.2). Большинство из них вводятся как раз в классах TControl и TWinControl.
Класс TCustomControlКласс TCustomControl предназначен для создания на его основе нестандартных оконных элементов управления. Процесс визуализации в нем упрощен за счет использования специального класса TCanvas, инкапсулирующего канву (см. гл. 11).
Доступ к канве осуществляется через свойство
property Canvas: TCanvas; Отрисовка элемента управления осуществляется методом
procedure PaintWindowfDC: HDC); override; после получения сообщения WM_PAINT.
Возможности этого класса унаследовали классы TPanel, TGroupBox, TStringGrid и т. д.
Класс TGraphicControl
Класс TGraphicControl предназначен для создания на его основе визуальных компонентов, не получающих фокус в процессе выполнения приложения. Так как непосредственным предком класса является класс TControl, то потомки TGraphicControl умеют реагировать на управляющие воздействия мышью.
Наглядный пример элемента управления, которому не нужно получать фокус, — это компонент TLabel, предназначенный для отображения текста, или компонент Timage, предназначенный для визуализации изображений.
Для визуализации элементов управления на основе этого класса используется канва, инкапсулированная в классе TCanvas.
Доступ к канве осуществляется через свойство
property Canvas: TCanvas; Отрисовка элемента управления осуществляется методом
procedure PaintWindow(DC: HDC); override; после получения сообщения WM_PAINT.
Статья Класс TWinControl и TControl раздела Компоненты и Классы Классы может быть полезна для разработчиков на delphi & pascal. Комментарии и вопросы:: 2015-05-29 19:55:27 :: re:Класс TWinControl и TControlпользователь: юрий. я так понял что дескриптор указывает на область в памяти компа где визуальный компонент создан, Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.
|
||||||
©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007 |