Пример создания эксперта

Рассмотрим создание эксперта в виде пакета.

Создаем новый пакет и добавляем в него модуль (Unit), в котором будет храниться класс эксперта.

Базовым для класса эксперта является интерфейс IOTAWizard. Все его методы нуждаются в реализации, даже если не будут использоваться.

Методы IOTAWizard:

  1. function GetIDString: string; – этот метод должен возвращать уникальную строку для идентификации эксперта внутри IDE. Например: "MY.FIRST.EXPERT". Если IDE обнаружит два расширения с одинаковыми идентификаторами, то среда разработки выдаст сообщение об ошибке, и загрузится только первый эксперт. Должен переопределяться во всех экспертах.
  2. function GetName: string; – должен вернуть имя эксперта. Например: "MyFirstExpert". При использовании эксперта формы или проекта это имя будет подписью под соответствующей пиктограммой в диалоговом окне NewItems. Должен переопределяться во всех экспертах.
  3. functionGetState: TWizardState; – определяет, доступен ли в данный момент эксперт, т. е. может ли пользователь выбрать соответствующий пункт меню. Имеет два состояния: wsEnabled (доступен), wsChecked (отмечен). Пример: Result:=[esEnabled];
  4. procedure Execute; – метод выполнится, когда эксперт запустится.

Все объекты, которые будут взаимодействовать с ToolsAPI, порождаются от TNotifierObject. Его реализацию можно посмотреть в том же ToolsAPI.pas.

Также при создании класса будем использовать интерфейс IOTAMenuWizard, обладающий методом function GetMenuText: string. Данная функция возвращает строку, которая будет внесена в подменю Help ИСР Delphi. Метод вызывается при каждом выводе меню.

Переопределение методов - задача довольно простая; она предполагает написание всего нескольких строк кода. Например, реализацияметода GetMenuText:

function TFirstExpert.GetMenuText: string;

begin

Result := 'Execute MyFirstExpert';

end;

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

Для регистрации пакетов используется процедура RegisterPackageWizard(TFirstExpert.Create), где TFirstExpert – имя класса эксперта.

В результате код модуля может быть следующим:

unit FirstExpClass;

interface

uses

ToolsApi, Dialogs, SysUtils;

type

TFirstExpert = class(TNotifierObject, IOTAWizard, IOTAMenuWizard)

public

function GetIDString: string;

function GetName: string;

function GetState: TWizardState;

procedure Execute;

function GetMenuText: string;

end;

procedure Register;

implementation

 

procedure Register;

begin

RegisterPackageWizard(TFirstExpert.Create);

end;

 

{ TFirstExpert }

procedure TFirstExpert.Execute;

begin

ShowMessage(‘Экспертзапущен’);

end;

 

function TFirstExpert.GetIDString: string;

begin

Result := 'MY.FIRST.EXPERT';

end;

 

function TFirstExpert.GetMenuText: string;

begin

Result := 'Execute MyFirstExpert';

end;

 

function TFirstExpert.GetName: string;

begin

Result := 'MyFirstExpert';

end;

 

function TFirstExpert.GetState: TWizardState;

begin

Result := [wsEnabled];

end;

end.

Далее остается только скомпилировать пакет, нажав на , и установить его в ИСР. Для установки достаточно зайти в меню Component \ Install Packages, нажать Add и выбрать BPL с экспертом. (Можно сразу нажать ).








Дата добавления: 2015-09-07; просмотров: 981;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.006 сек.