Разработка компонент для среды структурно-визуального программирования

Дипломная работа - Компьютеры, программирование

Другие дипломы по предмету Компьютеры, программирование



?орого построен компонент. Данное поле необходимо для доступа свойствам и методам данного класса к функциональности базового.NET объекта.

-project предоставляет доступ к функциям проекта среды разработки через интерфейс IProject, который будет рассмотрен далее.

-Container имеет тип IObject и содержит компонент, являющийся контейнером данного объекта.

-DesignMode указывает в каком режиме работать компоненту: в режиме проектирования, скомпилированном режиме или отладка.

-Markers хранит вспомогательные для среды разработки объекты компонента, такие как маркеры, используемые для изменения размеров компонентов в среде разработки и перемещения их.

-Name содержит имя создаваемого объекта. Имена имеют абсолютно все компоненты, это основные идентификаторы компонента в среде.

-Index является дополнительным идентификатором объекта, используемый когда несколько компонент объединены в массив и имеют одно имя. Вместе Name и Index позволяют однозначно идентифицировать компонент на форме.

-ObjectType указывает тип компонента: с визуальным интерфейсом, без постоянного визуального интерфейса, статические классы.

-ProgramCode содержит в специальном классе программный код, созданный для обработчиков событий компонента.

-GetListFromType возвращает перечисления в виде списка строк, которые соответствуют передаваемому типу свойства.

-InitialEvent - функция, которая должна вызываться в начале каждого обработчика, созданного для события компоненты. Её задача: передача аргумента события в объект представления, для использования его свойствами компонента для получения дополнительной информации о событии и как средство обратной связи с ним.

-SetEventsDebug. Для обеспечения работы компонента в режиме интерпретатора, каждый компонент должен задать в этой функции отправку программного кода обработчиков событий в интерпретатор.

-SetEventsDevelop. Для обеспечения работы компонента в режиме конструктора, каждый компонент должен задать в этой функции перенаправление событий в среду разработки.

-Created - событие, которым обладают все объекты, срабатывающее после создания компонента на форме.

-Disposed - событие, которым обладают все объекты, срабатывающее после ликвидации компонента.

Для создания новых компонент с расширенной функциональностью достаточно создать класс, наследуемый от BaseBehavior, и дополнить его новыми свойствами и методами. Если необходимо изменить поведение компонента от указанного базового поведения, достаточно переопределить функции, в которых оно описывается.

По этому принципу создана иерархия классов представления, которая по своей структуре очень близка к наследованию, используемому в.NET Framework. Она (частично) представлена на рисунке 16.

Рис. 16. ? Иерархия наследования объектов представления (частичная)

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

Все статические компоненты должны наследоваться от UsefulBehavior, в котором определены все необходимые процедуры работы данного типа компонент. Компоненты без постоянного визуального интерфейса удобно создавать на основе BaseBehavior.

Таким образом, данная иерархия позволяет минимизировать избыточность кода при разработке новых компонент, а также предоставляет гибкость в модернизации объектов и упрощает разработку.

3.6 Проект

Проводником компонентов в систему структурно-визуального программирования является проект. Основными задачами проекта являются:

-объединение всех компонент в единое целое

-предоставление интерфейса взаимодействия со средой разработки.

-хранение данных

-предоставление функций обработки данных

-управление отображением данных в среде разработки.

Структура проекта

Проект является объектным представлением программы, которую проектирует пользователь. Проект состоит из следующих частей:

-Свойства проекта. Различные настройки названия разрабатываемого приложения, версии, расположения ресурсов и т.д.

-Список участвующих в программе компонент. Экземпляры классов каждой созданной пользователем компоненты.

-Программный код разрабатываемого приложения, который представлен в виде дерева, ветви и листья которого содержат код на промежуточном языке объектной модели.

-Функции изменения и расширения проекта, такие как добавление нового компонента в проект, поиск по проекту, изменения кода и т.д.

Для доступа компонент к возможностям проекта был разработан интерфейс IProject, предоставляющий необходимые функций среды. Он приведен на Рис. 17.

Рис. 17. ? Интерфейс проекта

Набор методов интерфейса можно разделить на три категории:

1.Общего назначения:

-GetAllObjects возвращает набор всех компонент участвующих в проекте, в формате массива IObject;

-GetList возвращает перечисления используемые в среде разработки. Для работы функции, ей необходимо передать тип перечисления. Форматом перечислений является список ключ-значение, где ключом является строковое обозначение значения, указанного в формате.NET

-GetObjectFromName возвращает компонент в формате IObject, по переданному имени и индексу;

-Get