- •Основы объектно-ориентированного анализа и проектирования Введение в объектно-ориентированное программирование Эволюция разработки программного обеспечения
- •Технологии программирования
- •Основные концепции объектно-ориентированного программирования
- •Реализация объектно-ориентированного подхода Инкапсуляция. Свойства
- •При использовании динамики:
- •Конструкторы объектов
- •Деструкторы объектов
- •Наследование, агрегация
- •Полиморфизм, виртуальные и динамические методы
- •Абстрактные методы
- •Перегрузка методов
- •События и делегирование
- •Приведение объектных типов, операторы is и as
- •Области видимости
- •Перекрытие и переопределение свойств
- •Объектно-ориентированное программирование в Borland Delphi. Применение объектно-ориентированного программирования
- •Иерархия библиотечных классов в Borland Delphi.
- •Создание компонентов в среде Delphi Способы создания компонентов
- •Процесс создания компонентов
- •Создание модуля
- •Создание описания и реализации класса для компонента
- •Тестирование неустановленного компонента
- •Создание графического изображения для компонента
- •Инсталляция и деинсталляция компонента
- •Создание свойств, событий и методов компонентов Работа со свойствами
- •События
- •Обработка сообщений Windows
- •Сообщения Windows
- •Обработчики сообщений Windows
Создание компонентов в среде Delphi Способы создания компонентов
Компонент Delphi - это класс, с которым можно работать в период разработки. Создание компонента означает порождение новых классов из уже существующих. Можно породить новый компонент от любого существующего класса, потомка TComponent. Но существует несколько наиболее общих путей создания компонентов:
· модификация существующего компонента;
· создание нового оконного элемента управления (потомка TWinControl или TCustomControl);
· создание нового графического элемента управления (потомка TGraphicControl);
· создание «обертки» вокруг существующих Windows элементов управления;
· создание невизуального компонента (потомка TComponent).
Классы, порожденные от классов, не являющихся потомками TComponent не будут компонентами.
Простейший способ создания компонента - это изменить уже существующий. Некоторые элементы управления могут иметь несколько вариантов на основе базового. В этом случае в VCL включается абстрактный класс (со словом Custom в его имени, например TCustomGrid), от которого порождаются новые версии. При этом могут изменяться методы и свойства. Так как нет возможности скрыть уже опубликованные свойства, то если это необходимо, приходится порождать новый класс от предка в линии наследования, у которого свойства еще были скрыты.
Оконные элементы управления - это компоненты, которые способны получать фокус ввода и имеют для этих целей дескриптор окна. Такие элементы управления порождаются либо от TWinControl!, либо, если нужны возможности отрисовки, от TCustomControl. При этом виртуально перекрывается метод Paint, который отвечает за отображение компонента. Перекрываются другие существующие методы, изменяется свойств, создаются новые методы и свойства и т.п.
Если компоненту не нужен фокус ввода, то он аналогичным образом может быть порожден от TGraphicControl.
В Windows существуют зарегистрированные элементы управления. При необходимости могут создаваться и регистрироваться новые. В Delphi имеется возможность создавать компоненты путем создания «обертки» вокруг существующих элементов управления Windows. Пример созданного таким образом компонента Delphi - TEdit и другие, описанные в модуле STDCTLS.
Невизуальные компоненты используются, например, для организации доступа к базам данных, системным часам и т.д. Разрабатываются подобно визуальным, но могут порождаться непосредственно от TComponent.
Процесс создания компонентов
В процессе создания компонента можно выделить следующие этапы:
· создание модуля для компонента,
· создание описания и реализации класса для компонента,
· создание Help файла для компонента (если требуется),
· тестирование не установленного компонента, регистрация компонента.
По завершению работы компонент будет включать следующие файлы:
· файл пакета (.BPL) или коллекции пакетов (.DPC),
· откомпилированный файл пакета (.DCP),
· откомпилированный файл модуля (.DCU),
· файл графического изображения для компонента в палитре компонентов (.DCR),
· файл справки (.HLP).
В среде разработки Delphi пакеты используются для хранения кода визуальной библиотеки компонентов. Исходный файл пакета имеет расширение DPK и представляет собой выполненное с использованием специального синтаксиса перечисление модулей и других пакетов, включаемых в состав данного пакета. На основе исходного файла компилятор генерирует исполняемый файл пакета с расширением BPL и создает файл бинарной карты пакета с расширением ОСР, в который включается заголовок пакета и ссылки на все используемые файлы с расширением ОСИ Новый компонент можно как добавить в уже имеющийся пакет, так и создать для него новый. Создание нового в большинстве случаев предпочтительнее.