136___________________________________________________Глава 5
Объект TEMSText также имитирует последовательный файл, но его элементами являются строки.
Наконец, потомок TEMSScreen базового объекта TEMSArea предназначен для хранения в EMS— памяти копии графического экрана.
Использование объектов модуля F_EMS снимает многие ограничения Турбо Паскаля на объем обрабатываемых данных. Более того, поскольку индексы массивов и максимальные размеры сохраняемых данных определяются как длинные целые числа, использование процедур модуля может упростить программу. Например, максимальная длина любого массива, размещаемого в динамической памяти, не может быть больше 64 Кбайт, поэтому более крупные массивы приходится размещать в куче порциями;
при использовании объектов модуля F_EMS этого делать не нужно. Однако следует помнить, что доступ к EMS— памяти осуществляется с помощью более или менее сложных объектных методов и поэтому происходит значительно медленнее, чем обращение к базовой памяти.
5.3.1. Объекты модуля
TEMSArea
Этот объект является основой иерархии объектов модуля F_EMS. Методы объекта интерпретируют доступную ему EMS— память как одну очень длинную цепочку байт. Единственное, что умеет делать объект с этой памятьЮг это записывать в нее данные или читать данные из нее. Для этого в объект включены базовые методы WriteEMS (писать в EMS— память) и ReadEMS (читать из памяти). Эти методы можно рассматривать как модификацию стандартной процедуры Move на случай обмена данными с EMS— памятью: при обращении к ним нужно указать адрес источника, адрес приемника и количество пересылаемых байт. Отличие от Move состоит в том, что это количество задается параметром типа Longint, что позволяет обмениваться массивами данных произвольного размера (стандартная процедура Move обеспечивает передачу не более 65535 байт).
Для большинства практических целей более удобно пользоваться наследниками этого объекта.
Поля
Size Size: Longint; Только чтение Определяет размер (в байтах) связанной с объектом отображаемой памяти.
МахРаде MaxPage: Word; Только чтение
Определяет количество EMS— страниц по 16 Кбайт каждая, в которых размещаются Size используемых объектом байт.
Handle Handle: Word; Только чтение
Дескриптор EMM, владеющий МахРаде страницами EMS— памяти.
Методы
Init Constuctor Init (ASize: Longint);