Класс используется как базовый класс для реализации методов.
При его использовании можно не реализовывать часть методов интерфейса ImaMethodDef:
Init и те из методов CalcDef и CalcCellDef, которые не используются и должны
возвращать MA_ERR_NOTIMPLEMENTED.
Он также содержит ряд функций и переменных, которые класс-потомок может использовать.
Переменные
Param: TmaList;
Input: TmaReadList;
Output: TmaReadList;
Функции интерфейса ImaMethodDef
function Init(const aparam: ImaList; const ainput: ImaReadList; const
aoutput: ImaReadList): HResult;virtual;
Функция создает классы-оболочки Param,Input и Output для входных параметров.
При необходимости ее можно переопределить.
function CalcDef: HResult; virtual;
function CalcCellDef(argno: integer; index: maIndex; out Cell: ImaCell):
HResult; virtual;
Функции возвращают MA_ERR_NOTIMPLEMENTED.
procedure LogError(ecode: HResult; message: WideString);
procedure LogMessage(message: WideString);
procedure Log(const message: WideString);
Функции вызывают соответствующие методы
ядра с параметром Sender, равным nil.
function Progress(percent: Double; message: WideString): boolean;
Функция вызывает обработчик сообщений
ядра,
установленный функцией TmaKernel.SetProgressHandler и возвращает false,
если вызыавющий может продолжать работу и true, если пользователь просит отменить операцию.
procedure ProgressExc(percent: Double; message: WideString);
Функция вызывает обработчик сообщений
ядра,
установленный функцией TmaKernel.SetProgressHandler и возбуждает исключение
EUserInterrupt, если пользователь просит отменить операцию.
EUserInterrupt = class(EAbort)
end;
Это исключение вызывается предыдущей функцией. Оно является потомком EAbort, и не порождает
сообщения об ощибке приложения.