Выбор предка компонента

Прежде, чем приступить к написанию кода, нужно определиться, хотя бы приблизительно, что за компонент вы собираетесь делать. Далее, исходя из его предполагаемых свойств, определите класс-предок. В VCL имеется несколько базовых классов, рекомендуемых для наследования. Эти классы перечислены в таблице 1.

Таблица 1. Базовые классы VCL.

Класс Возможности класса
TObject Классы, предком которых является данный класс, не являются компонентами. Класс TObject применяется при создании объектов, которые, обычно, являются предками для других компонентов. TObject можно использовать в качестве предка, если с этим компонентом не нужно работать во время дизайна. Это может быть, например, класс, содержащий значения переменных среды (environment) или класс для работы с INI файлами.
TComponent Применяется для создания невизуальных компонентов. Данный класс обладает встроенной возможностью сохранять / считывать себя в потоке во время дизайна.
TGraphicControl Применяется для создания визуальных неоконных компонентов, т. е. компонентов без дескриптора окна (handle). Потомки данного класса размещаются в клиентской области своих родительских компонентов рисуют прямо на своей поверхности и требуют мало ресурсов Windows.
TWinControl Применяется для создания компонентов, имеющих дескриптор окна (handle), который используют при доступе к возможностям Windows через API. Данные компоненты являются компонентами оконного типа и могут содержать в себе другие компоненты.
TCustomControl Этот класс является потомком TWinControl и дополняет его областью вывода (канвой). В данный класс добавлен метод Paint для лучшего контроля за прорисовкой компонента. Рекомендуется использовать настоящий класс для создания пользовательских оконных компонентов.
TCustomClassName Библиотека визуальных компонентов содержит несколько классов, у которых не все свойства объявлены как published, т. е. доступные из других модулей, но на основе данных классов можно создавать классы-потомки, в которых и объявлять данные свойства. Таким образом, разработчик может создать несколько идентичных классов на основе одного класса ClassName и в каждом из этих классов определять необходимые свойства из набора предопределенных свойств.
TComponentName Класс вроде TEdit или TButton. Позволяет создавать компоненты-потомки, предками которых являются обычные компоненты или классы VCL Delphi. Таким образом, если перед разработчиком стоит задача расширить возможности какого-либо компонента Delphi, можно использовать данный классс целью доопределения его свойств и методов или переопределения значения свойств, принимаемых по умолчанию.

Обратите внимание на то, что для правильного выбора класса-предка, вам нужно очень хорошо ориентироваться в возможностях уже существующих в Delphi классов.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: