Использование открытых интерфейсов среды программирования Delphi


Использование открытых интерфейсов среды программирования Delphi - часть 3


Expert Interface (модуль ExptIntf.pas) представляет собой основу для создания экспертов — программных модулей, встраиваемых в IDE c целью расширения ее функциональности. В качестве примера эксперта можно привести входящий в Delphi Database Form Wizard, выполняющий генерацию формы для просмотра и изменения содержимого таблицы БД.

Эксперты бывают нескольких типов (стилей):

Стиль

Описание

esStandard

Для каждого эксперта такого стиля IDE добавляет пункт меню Tools/..., при выборе которого эксперт активизируется (IDE вызывает его метод Execute)

esForm

esProject

IDE рассматривает эксперты данного стиля как шаблоны форм/проектов и помещает активизирующие их изображения в галерею Object Repository.

esAddIn

Эксперты подобного стиля обеспечивают собственный интерфейс с IDE

Класс каждого эксперта является потомком базового класса TIExpert, содержащего серию абстрактных методов, которые необходимо перекрыть в порождаемом классе:

Метод

Описание

GetName

Должен возвращать имя эксперта

GetAuthor

Должен возвращать имя автора эксперта. Это имя отображается в Object Repository

GetComment

Должен возвращать комментарий (1-2 предложения), поясняющий назначение эксперта. Используется в Object Repository

GetPage

Должен возвращать название страницы Object Repository, на которую IDE поместит соответствующее эксперту изображение

GetGlyph

Должен возвращать дескриптор (HICON, в Delphi 1.0 – HBITMAP) соответствующего эксперту изображения в ObjectRepository

GetStyle

Должен возвращать константу, соответствующую стилю эксперта (esStandard/esForm/esProject/esAddIn)

GetState

Если возвращаемое множество содержит константу esChecked, IDE пометит соответствующий эксперту пункт меню “галочкой”, а если множество содержит константу esEnabled, то IDE сделает этот пункт меню доступным для выбора

GetIDString

Должен возвращать строку – идентификатор эксперта, уникальную среди всех установленных экспертов. По соглашению, формат этой строки таков: Имя_Компании.Назначение_эксперта,

например: Borland.WidgetExpert

GetMenuText

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

Execute

Вызывается при вызове эксперта через меню или Object Repository (в зависимости от стиля)




Начало  Назад  Вперед



Книжный магазин