Турбо Паскаль 6.0

TEmsStream Objects


+------------+ | TObject | +-----+------+ +-----+------+ | TStream | +-----+------+ +=====+======+ | TEmsStream | +============+

TEmsStream - это специализированный поток, реализующий поток в Ems памяти, порожденный от TStream. Дополнительные поля представляют обработчик EMS, число страниц, размер потока и текущую позицию. TStreamEms перекрывает 6 абстрактных методов TStream, а так же предоставляет специальный констрактор и дестрактор.

Примечание: При отладке программы, использующей EMS потоки, IDE не может восстановить EMS память, распределенную Вашей программой, если Ваша программа преждевременно завершилась, или Вы забыли вызвать дестрактор Done для EMS потока. Только метод Done (или перезагрузка) могут освободить EMS страницы, принадлежавшие потоку.

Поля

Handle Handle: Word; Только чтение Обработчик EMS для потока.

PageCount PageCount: Word; Только чтение Число распределенных для потока страниц, по 16К на страницу.

Size Size: Longint; Только чтение Размер потока в байтах.

Position Position: Longint; Только чтение Текущая позиция внутри потока. Первая позиция - 0.

Методы

Init constructor Init(MinSize: Longint); Создает EMS поток с заданным минимальным размером в байтах. Вызывает TStream.Init, затем устанавливает Handle, Size и PageCount. Вызывает Error с аргументом stInitError, если инициализиция неудачна.

См. так же: TEmsStream.Done

Done destructor Done; virtual; Перекрывается: Никогда Освобождает EMS поток и используемые EMS страницы.

См. так же: TEmsStream.Init

GetPos function GetPos: Longint; virtual; Перекрывается: Никогда Возвращает значение текущей позиции в потоке.

См. так же: TEmsStream.Seek

GetSize function GetSize: Longint; virtual; Перекрывается: Никогда Возвращает общий размер потока.

Read procedure Read(var Buf; Count: Word); virtual; Перекрывается: Никогда Читает Count байт из буфера Buf, начиная с текущей позиции в потоке.

См. так же: TEmsStream.Write, stReadError

Seek procedure Seek(Pos: Longint); virtual; Перекрывается: Никогда Устанавливает текущую позицию в Pos байт от начала потока.

См. так же: TEmsStream.GetPos, TEmsStream.GetSize

Truncate procedure Truncate; virtual; Перекрывается: Никогда Удаляет все данные в потоке, начиная с текущей позиции до конца потока. Текущая позиция устанавливается в новый конец потока.

См. так же: TDosStream.GetPos, TDosStream.Seek

Write procedure Write(var Buf; Count: Word); virtual; Перекрывается: Никогда Записывает Count байт из буфера Buf в поток, начиная с текущей позиции.

См. так же: TDosStream.Read, TEmsStream.GetPos, TEmsStream.Seek



Содержание раздела