Перекрывается: Часто
Инициирует объект: определяет количество МахРаде страниц 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 |
Нет аппаратной поддержки сохраняемых страниц |