Перекрывается: Часто

Инициирует объект: определяет количество МахРаде страниц EMS— памяти, достаточное для размещения ASize байт, создает дескриптор Handle и связывает с ним МахРаде страниц.

Done Destructor Done; Virtual;

Перекрывается: Редко

Освобождает EMS— память, связанную с дескриптором Handle. He забывайте использовать вызов этого метода, перед тем как завершить работу с объектом или перед окончанием работы программы, поскольку выделенная дескриптору память остается в его монопольном распоряжении, даже если сам дескриптор уже не существует.

EMSError Procedure EMSError (NError: Byte); Virtual;

Этот метод вызывается всеми другими методами объекта TEMSArea и его потомков в случае, если обнаружена какая-либо ошибка. Параметр NError определяет номер ошибки. Если NErrorOO, метод устанавливает глобальный признак ошибки EMSErrorFlag, который может проанализировать вызывающая программа, затем выводит на экран текстовое сообщение о характере возникшей ошибки. Сообщение выводится с помощью стандартной процедуры WriteLn. Вы должны перекрыть метод EMSError в графическом режиме работы дисплея, если не используете модуль F_GrText или не осуществляете самостоятельной интерпретации вызова процедуры WriteLn. Этот метод следует перекрывать также в потомках для вывода сообщений о нестандартных ошибках. Исходный метод выдает нужное сообщение в случае, если номер ошибки лежит в диапазоне $80..$AD. Несколько необычная левая граница диапазона связана с тем, что диапазон $80..$А4 соответствует стандартным ошибкам драйвера EMM.SYS (см. п.5.2). В табл.5.3 указаны номера ошибок и соответствующие им сообщения.

Таблица 5.3 Сообщения об ошибках, выдаваемые процедурой TEMSArea.EMSError

Код

Значение

$80

Внутренняя ошибка EMM

$81

Сбой EMS—платы

$82

EMM занят обработкой предыдущего запроса

$83

Неверный дескриптор окна

$84

Запрошена неопределенная в данной версии EMM функция

$85

Нет доступных дескрипторов окон

$86

Ошибка при сохранении или восстановлении окна

$87

Запрос распределения превышает общую EMS — память

$88

Запрос распределения превышает число доступных страниц

$89

Попытка создать дескриптор с нулевым количеством страниц

$8А

Дескриптор не располагает таким числом страниц

$8В

Попытка картировать больше 4 страниц

$8С

Переполнение области сохранения картирующего контекста

$8D

Попытка повторного сохранения картирующего контекста

$8E

Попытка восстановления несохраненного контекста

$8F

Не определен параметр подфункции

$90

Неизвестный тип атрибутов

$91

Нет аппаратной поддержки сохраняемых страниц