TEmsStream (модуль Objects)


TObject
Init
Done
Free
TStream
Status
ErrorInfo
CopyFrom
Error
Flush
Get
GetPos
GetSize
Put
Read
StrRead
StrWrite
Truncate
WriteStr
TEmsStream
Handle
PageCount
Position
Size
Init
Done
GetPos
GetSize
Read
Seek
Truncate
Write

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

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

Поля


Handle (только чтение)

     Handle: Word;

    Описатель EMS для потока.

PageCount (только чтение)

     PageCount: Word;

    Число выделенных для потока страниц (16К на страницу).

Position (только чтение)

     Position: Longint;

    Текущая позиция в потоке. Первая позиция - это 0.

Size (только чтение)

     Size: Longint;

    Размер потока в байтах.

Методы


    Ниже описываются методы, определенные в данном объекте.

Init


     constructor Init(MinSize, MaxSize: 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.S

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;

    Удаляет все данные из потока от текущей позиции до конца. Текущая позиция устанавливается в новый конец потока.

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

Write (никогда не переопределяется)


     procedure Write(var Buf; Count: Word); virtual;

    Записывает Count байт из буфера в поток, начиная с текущей позиции.

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