Национальный цифровой ресурс Руконт - межотраслевая электронная библиотека (ЭБС) на базе технологии Контекстум (всего произведений: 634794)
Контекстум
.

Разработка компонентов в Delphi (110,00 руб.)

0   0
Первый авторАртемов Михаил Анатольевич
АвторыВощинская Гильда Эдгаровна, Рудалев Валерий Геннадьевич
ИздательствоИздательско-полиграфический центр Воронежского государственного университета
Страниц56
ID225953
АннотацияВ данном учебном пособии излагаются основы создания пользовательских компонентов в среде Delphi 7. Описываются структура компонента и методика разработки. Приводятся примеры решения типовых задач.
Кому рекомендованоРекомендуется для студентов 2-го курса дневного отделения факультета прикладной математики, информатики и механики.
Артемов, М. А. Разработка компонентов в Delphi / Г. Э. Вощинская, В. Г. Рудалев; М. А. Артемов .— Воронеж : Издательско-полиграфический центр Воронежского государственного университета, 2011 .— 56 с. — 55 с. — URL: https://rucont.ru/efd/225953 (дата обращения: 25.04.2024)

Предпросмотр (выдержки из произведения)

МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РФ ГОСУДАРСТВЕННОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ «ВОРОНЕЖСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ» РАЗРАБОТКА КОМПОНЕНТОВ В DELPHI Учебно-методическое пособие для вузов Составители: <...> В.Г. Рудалев Издательско-полиграфический центр Воронежского государственного университета 2011 Утверждено научно-методическим советом факультета прикладной математики, информатики и механики от 25 мая 2011 г., протокол № 9 Рецензент доцент кафедры ПиИТ ф-та ФКН ВГУ В.Г. Хлебостроев Учебно-методическое пособие подготовлено на кафедре программного обеспечения и администрирования информационных систем факультета прикладной математики, информатики и механики Воронежского государственного университета. <...> В данном учебном пособии излагаются основы создания пользовательских компонентов в среде Delphi 7. <...> Когда разработчик приложения помещает компонент на форму, то дизайнер форм создает экземпляр выбранного компонента из соответствующего компонентного класса. <...> Компонент отображается на форме, а его опубликованные свойства становятся доступными для редактирования на этапе разработки либо с помощью инспектора объектов, либо через созданные разработчиком компонента редакторы компонентов и редакторы свойств [2]. <...> Базовую функциональность компонентов обеспечивает класс TComponent, являющийся предком всех компонентов. <...> Например, TComponent реализует свойства Name и Tag, которые наследуются всеми компонентами. <...> Более того, TComponent содержит методы и свойства, которые предоставляют компонентам возможность обрабатываться дизайнером форм. <...> Хотя компоненты и реализуются с использованием классов языка Delphi, но объявление класса не является объявлением компонента, если 4 класс не порожден от ТСоmроnent. <...> Экземпляры классов, которые произведены от TComponent, называются компонентами, а экземпляры всех других классов называются объектами. <...> • Компоненты являются инструментами и используются <...>
Разработка_компонентов_в_Delphi.pdf
Стр.1
Стр.3
Стр.6
Стр.7
Стр.8
Разработка_компонентов_в_Delphi.pdf
МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РФ ГОСУДАРСТВЕННОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ «ВОРОНЕЖСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ» РАЗРАБОТКА КОМПОНЕНТОВ В DELPHI Учебно-методическое пособие для вузов Составители: М.А. Артемов, Г.Э. Вощинская, В.Г. Рудалев Издательско-полиграфический центр Воронежского государственного университета 2011
Стр.1
Содержание Введение ..............................................................................................................4 1. Исходные положения....................................................................................4 2. Структура компонента.................................................................................8 2.1. Области видимости...................................................................................8 2.2. Создание свойств компонента...............................................................10 2.3. Типы свойств...........................................................................................13 2.4. Методы.....................................................................................................15 2.5. События ...................................................................................................17 3. Проектирование компонента....................................................................22 3.1. Этапы проектирования...........................................................................22 3.2. Создание файла модуля..........................................................................24 3.3. Настройка компонента ...........................................................................26 3.4. Объявление конструктора......................................................................27 3.5. Тестирование интерфейса времени выполнения.................................30 3.6. Установка компонента ...........................................................................33 3.7. Ресурс компонента..................................................................................38 4. Примеры программирования...................................................................40 4.1. Компонент, наследник класса TGraphicControl...................................40 4.2. Компонент для отображения текущего времени.................................46 4.3. Компонент, выполняющий вычисления над содержимым опубликованного свойства TStrings.............................................................49 Задания ..............................................................................................................52 Литература........................................................................................................55 3
Стр.3
тупа к базам данных (TTable, TQuery и т.п.). Невизуальные компоненты не видны на форме и работают «за кулисами» приложения. Их предком не является TControl, а наследование идет от TComponent. Визуальные компоненты делятся на две группы – графические и оконные. Графические компоненты порождаются от TGraphicControl и имеют визуальное представление, но не получают фокуса ввода. Главной особенностью потомков TGraphicControl является наличие свойства Canvas: TCanvas, позволяющего выводить изображение прямо на поверхности компонента. Примерами графических компонентов являются TImage, TPaintBox, TLabel. Оконные компоненты происходят от TWinControl. Они инкапсулируют функции API для работы с окнами Windows, умеют получать фокус ввода и содержат свойство Handle: THandle. Данное свойство хранит дескриптор соответствующего оконного объекта Windows и может быть использовано для непосредственного вызова функций API и обмена сообщениями Windows между компонентами. Иногда для создания пользовательского элемента управления используется класс TCustomControl. Это прямой потомок TWinControl, автоматически наследующий всю его функциональность. Но дополнительно он в секции Protected содержит свойство Canvas, необходимое для рисования. Чтобы использовать это свойство в потомках TCustomControl, его надо перенести в секцию Public (см. следующий раздел). 6
Стр.6
Рис. 1. Фрагмент иерархии классов библиотеки VCL Рекомендации по использованию родительских классов в качестве предка для нового компонентного класса приведены в таблице 1. Таблица 1 Унаследован от Существующего компонента TWinControl Базовые классы Delphi для создания компонентов Для создания Модифицированной версии работающего компонента. TGraphicControl Графического компонента, не требующего фокуса ввода Оконного компонента, использующего дескриптор окна или для создания оболочки вокруг существующих пользовательских оконных элементов управления. TCustomControl Оригинального компонента TComponent Невизуального компонента. 7
Стр.7
Зачастую новому компоненту не нужны все свойства предка, которых могут быть многие десятки. Чтобы упростить разработку, в иерархии компонентов имеются компоненты, в названии которых присутствует слово «Custom» (заказной). Такие компоненты не имеют опубликованных свойств, т.е. свойств, видных в инспекторе объектов. Все свойства, доступные к опубликованию, перечислены в секции protected. Поэтому если мы хотим модифицировать TEdit, но не все свойства TEdit нам нужны, то лучше наследовать не от TEdit, а от TCustomEdit. Далее, чтобы опубликовать необходимые свойства в нашем компоненте, следует при объявлении его класса просто перечислить названия свойств в секции published. 2. Структура компонента 2.1. Области видимости Компоненты имеют разные программные интерфейсы: интерфейс времени выполнения (как компонент может использоваться, какие методы, свойства и события будут доступны), интерфейс времени проектирования (как компонент ведёт себя в среде проектирования), интерфейс разработчика (обеспечивает доступ к деталям реализации). Чтобы соответственно разграничить доступ к полям, методам и свойствам класса (то есть задать область видимости) в Delphi определены четыре основных директивы, приведенные в таблице 2. Таблица 2 Private Уровни доступа к полям и методам класса Личные Protected Защищенные Невидимы вне модуля или программы, в которой класс объявлен Видим везде в модуле, в котором класс объявляется, и из любого класса потомка, независимо от модуля, где класс потомка появля8
Стр.8