Доступ к отображаемой памяти 145

Getltem Procedure Getltem (var Dest, Ind) ;

Перекрывается: Никогда

Помещает в переменную Dest значение элемента массива, заданного списком индексов Ind типа TIndexList.

Setltem Procedure S'etltem (var Source, Ind);

Перекрывается: Никогда

Помещает значение переменной Source в элемент массива, заданный списком индексов /nd типа TIndexList.

TEMSType__________________________________________

Объект TEMSType содержит средства, позволяющие зарезервировать участок EMS— памяти нужной длины и работать с этой памятью как с файлом последовательного доступа. С этой целью в объекте содержится поле Pos, в котором указывается текущее положение указателя записи/чтения (смещение указателя от начала памяти в байтах). Методы Setltem и Getltem позволяют записать в EMS— память или прочитать из нее массив байтов нужной длины. В объекте нет средств позиционирования указателя и контроля за длиной записываемых/считываемых элементов. Ответственность за правильное использование записанной в EMS— память информации возлагается на программиста.

Поля

Pos Pos: Longint Чтение/Запись

Содержит смещение в байтах указателя чтения/записи от начала EMS— памяти. Методы Setltem и Getltem используют это поле для определения текущего участка EMS— памяти и после чтения или записи информации увеличивают его значение на длину прочитанной (записанной) информации. Программа пользователя может произвольным образом распоряжаться этим полем, чтобы обеспечить доступ к нужному участку памяти. Обычно она должна записать в это поле ноль, чтобы заставить читать/записывать данные с самого начала памяти.

Методы

Init Constructor Init (ASize: Longint);

Создает объект: вызывает родительский метод TEM.SArea.lnit, чтобы зарезервировать в EMS— памяти ASize байт, затем помещает в поле Pos значение 0.

Load Constructor Load (F: File) ;

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

Считывает объект из файла F: вызывает родительский метод TEMSArea.Load, затем читает из файла заголовок RegHeadTEMSType и поле Pos. Перед обращением к методу файловую переменную F необходимо связать с уже существующим нетипизированным файлом, а сам файл должен быть открыт для чтения блоками длиной в 1 байт.

Store Procedure Store (var F: File); Virtual;

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