Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ООП / ООП_Лекции.doc
Скачиваний:
50
Добавлен:
08.06.2015
Размер:
1.03 Mб
Скачать

7. Построение собственных компонентов

При создании приложений Windows в Delphi обычно используются существующие компо­ненты Delphi. Это то, что обычно определя­ется термином визуальное программирование: разме­щение компонентов на визуальной форме и запись некоторого кода, чтобы соединить их вместе. В отличие от большинства других визуальных инструментальных средств программирования, Delphi позволяет построить свои собственные компоненты внутри собственного окружения.

Как и для чего следует строить компоненты

Сложно преувеличить значение компонентов в Delphi. В конце концов, компоненты — это основа программирования в Delphi, а ключевые слова property и published — возможно, наиболее заметные расширения языка Object Pascal в Delphi.

В Delphi есть несколько фундаментальных причин строить компоненты. Вот их краткий список:

Возможность личного многократного использования. Здесь цель состоит в том, чтобы избежать двухкратного переписывания того же самого кода в одной программе или в различных программах. Хотя Delphi предоставляет альтернативные приемы, обеспечи­вающие возможность многократного использования (включая наследование формы), инкапсуляция кода в компонентах является одним из самых лучших. В конце концов, многократное использование компонента вообще проще, чем другие формы много­кратного использования, благодаря своей наглядности. Кроме того, многократное использование кода с помощью компонентов намного более гибче, чем наследование визуальнй формы. Например, в форму можно добавить несколько заказных компонентов и, благодаря этому, повторно использовать код из двух разных источников в одной форме. Однако визуальное наследование форм нельзя использовать для одновременного наследования из двух базовых форм. ;

Возможность многократного использования группой программистов. В этом случае цель состоит в совместном использовании компонента, написанного вами, или наоборот, написанного вашими соисполнителями. Существуют различные варианты, в том числе право квалифицированных программистов помещать компоненты в библиотеку визуальных компонентов (Visual Component Library — VCL), что может радикально улучшить вашу производительность или всего коллектива. Это особенно справедливо, если программисты в группе имеют разные уровни квалификации при написании кода для частных задач. Каждый программист может писать компоненты, которые он (или она) может реализовать наиболее эффективно. Другие же программисты могут не уметь создавать такие компоненты, но зато могут легко научиться их использовать.

Глобальная возможность многократного использования. Здесь цель состоит в том, чтобы издавать или продавать ваши компоненты любому из сотен тысяч других программистов Delphi. В Internet можно найти много простых компонентов (хотя они могут быть не достаточно современными), часто с полным исходным текстом компонента. Как только на исследование и разработку сложного компонента затрачено значительное время, можно продать его как пакет общего пользования или как коммерческий пакет. При­чина возможности многократного использования состоит (как для компонентов VBX и элементов управления OCX/ActiveX) в наличии достаточного количества потенциальных покупателей, чтобы установить низкую цену компонентов.

В любом случае, целью является некоторая форма возможности многократного использо­вания. По этой же причине программисты традиционно собирают библиотеки функций и классов, а затем покупают и продают эти библиотеки. Однако использование функций или классов, не входящих в библиотеки, обычно требует много тяжелой работы. С другой стороны, использование компонента в визуальной среде программирования с интуитивным набором свойств и событий гораздо проще.

Примечание

Хотя несколько инструментальных средств программирования применяли концепцию компо­нентов, основанную на визуальном программировании (больше всех выделяется Visual Basic), Delphi - единственный инструмент, который полностью объединил объектно-ориентированное понятие классов с концепцией компонентов. В результате возникла это уникальная способность расширять существующие компоненты, получая новый производный класс.

Соседние файлы в папке ООП