Модули интерфейса API Open Tools

Интерфейс API Open Tools состоит из четырнадцати модулей, каждый из которых содержит один или несколько объектов, обеспечивающих взаимодействие со многими средствами интегрированной среды разработки. С помощью этих интерфейсов можно создавать собственные мастера Delphi, диспетчеры управления версиями, а также компоненты и редакторы свойств.

За исключением интерфейсов, разработанных для компонентов и редакторов свойств, объекты интерфейса Open Tools обеспечивают полностью виртуальный интерфейс с внешним миром. Это означает, что можно использовать лишь виртуальные функции таких объектов. Ни к полям данных подобного объекта, ни к его свойствам или статическим функциям нельзя получить доступ, поскольку объекты интерфейса Open Tools создаются на основе стандарта COM. После небольшой доработки эти интерфейсы могут использоваться с любым языком программирования, поддерживающим технологию COM.

Примечание. Термин интерфейс в данном случае не означает встроенный в Delphi тип interface. Поскольку API Open Tools обеспечивает поддержку интерфейсов Delphi, в качестве замены “настоящих” интерфейсов он использует обычные классы Delphi с виртуальными абстрактными методами. Использование стандартных интерфейсов в API Open Tools Delphi в каждой новой версии увеличивалось, и текущая версия основывается практически только на них.

В таблице 2 приведены модули, которые, в сущности, и составляют интерфейс API Open Tools. Модули таблицы 3 сохранены лишь для обеспечения совместимости с предыдущими версиями Delphi.

Таблица 2. Модули интерфейса API Open Tools.

Имя модуля Назначение
ToolsAPI Содержит новейшие элементы интерфейса API Open Tools. Этот модуль, по существу, заместил абстрактные классы, применяемые в предыдущих версиях Delphi для управления дополнениями меню, системы уведомления, файловой системы, редактора и мастеров. В нем содержатся также новые интерфейсы для управления отладчиком, комбинациями клавиш интегрированной среды разработки, проектами, группами проектов, пакетами и списком To Do.
VCSIntf Определяет класс TIVCSClient, обеспечивающий взаимодействие Delphi с программным обеспечением управления версиями.
DesignConst Содержит строки, используемые API Open Tools.
DesignEditors Обеспечивает поддержку редактора свойств.
DesignIntf Заменяет модуль DsgnIntf предыдущих версий и обеспечивает базовую поддержку интерфейсов IDE времени разработки. IDE использует интерфейс IProperty для редактирования свойств. Интерфейс IDesignerSelections применяется для манипулирования объектами, выбранными в списке конструктора форм (заменяет TDesignerSelectionList, использовавшийся в предыдущих версиях Delphi). IDesigner - это один из первичных интерфейсов, который применяется мастерами для общих служб IDE. IDesignNotification поддерживает такие уведомления событий конструктора, как вставка, удаление и модификация элементов. Интерфейс IComponentEditor реализуется редакторами компонентов для обеспечения редактирования компонента во время разработки, а ISelectionEditor обеспечивает те же возможности для группы выбранных компонентов. Класс TbaseComponentEditor является базовым классом для всех редакторов компонентов. Интерфейс ICustomModule и класс TBaseCustomModule обеспечивают возможность установки модулей, которые могут быть отредактированы в конструкторе форм IDE.
DesignMenus Содержит интерфейсы IMenuItems, IMenuItem, а также другие подобные интерфейсы, предназначенные для манипулирования меню IDE во время разработки.
DesignWindows Содержит объявление класса TDesignWindow, являющегося базовым классом для всех новых окон проекта, которые добавляются в IDE.
PropertyCategories Содержит классы, обеспечивающие категоризацию свойств специальных компонентов. Используется инспектором объектов для представления свойств по категориям.
TreeIntf Поддерживает класс TSprig и связанные с ним классы, а также интерфейсы, обеспечивающие узлы и ветвления в объекте TreeView IDE.
VCLSprigs Содержит реализацию ветвления компонентов VCL.
VCLEditors Содержит объявления базовых интерфейсов ICustomPropertyDrawing и ICustomPropertyListDrawing, обеспечивающих специальное представление свойств и списков свойств в инспекторе объектов IDE. Содержит также объявления специальных объектов для представления свойств VCL.
ClxDesignWindows Содержит объявление класса TClxDesignWindow, являющегося эквивалентом CLX-класса TDesignWindow.
ClxEditors Эквивалент CLX-модуля VCLEditors, содержащего редакторы свойств для компонентов CLX.
ClxSprigs Реализация ветвления для компонентов CLX.

Таблица 3. Устаревшие модули API Open Tools.

Имя модуля Назначение
FileIntf Определяет класс TIVirtualFileSystem, используемый IDE Delphi для работы с файлами. Мастера, диспетчеры управления версиями, а также редакторы свойств и компоненты могут использовать этот интерфейс для выполнения в Delphi специальных файловых операций.
EditIntf Определяет классы, необходимые для управления редактором кода и конструктором форм. Класс TIEditReader предоставляет доступ к буферу редактора “для чтения”, а класс TIEditWriter - предоставляет доступ к буферу редактора “для записи”. Класс TIEditView предоставляет возможность просмотра буфера редактирования. Класс TIEditInterface - это базовый интерфейс редактора, который может использоваться для доступа к уже упоминавшимся интерфейсам. Класс TIComponentInterface - это интерфейс с отдельным компонентом, помещенным в форму или модуль в режиме разработки. Класс TIFormInterface - основной интерфейс с формой или модулем данных в режиме разработки, позволяет создавать компоненты или искать их в отдельной форме или модуле. Класс TIResourceEntry обеспечивает взаимодействие с данными в файле ресурсов (*.res) проекта. Класс TIResourceFile определяет высокоуровневый интерфейс с файлом ресурсов проекта, позволяет создавать, удалять или отыскивать ресурсы в файле ресурсов проекта. Класс TIModuleNotifier определяет сообщения, используемые при появлении в конкретном модуле различных событий. Класс TIModuleInterface обеспечивает взаимодействие с любым файлом или модулем, открытым в интегрированной среде разработки.
ExptIntf Определяет абстрактный класс TIExpert, от которого происходят все мастера.
VirtIntf Определяет базовый класс TInterface, от которого происходят другие интерфейсы. В этом модуле определен также класс TIStream, который инкапсулирует класс VCL TStream.
IStreams Определяет классы TIMemoryStream, TIFileStream и TIVirtualStream, которые являются потомками класса TIStream. Эти интерфейсы могут использоваться для включения в IDE своего собственного механизма работы с потоками.
ToolIntf Определяет классы TIMenuItemIntf и TIMainMenuIntf, которые позволяют разработчику создавать и модифицировать меню IDE Delphi, управлять атрибутами пунктов меню и отслеживать событие OnClick пункта меню. В данном модуле определен также класс TIAddInNotifier, кото рый позволяет создаваемым инструментам дополнениям получать уведомления о возникновении в среде разработки определенных событий. В этом модуле имеется класс TIToolServices, который обеспечивает взаимодействие между различными элементами IDE Delphi (такими как редактор, библиотека компонентов, редактор кода, конструктор форм и файловая система).

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



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