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


TStream Objects - часть 2


См. так же: TStream.GetSize, TObject.Init

Error procedure Error(Code, Info: Integer); virtual; Перекрывается: Иногда Вызывается, если возникла ошибка потока. По умолчанию TStream.Error сохраняет Code и Info в полях Status и ErrorInfo. Затем, если глобальная переменная StreamError не nil, вызывает процедуру, заданную в StreamError. После возникновения ошибки, все операции над потоком запрещены до тех пор, пока не будет вызван Reset.

См. так же: TStream.Reset, StreamError переменная

Flush procedure Flush; virtual; Перекрывается: Иногда Абстрактный метод, который должен быть перекрыт, если Ваш порожденный тип реализует буфер. Этот метод может выталкивать любые буфера, очищая буфер чтения и записывая буфер вывода. По умолчанию TStream.Flush ничего не делает.

См. так же: TDosStream.Flush

Get function Get: PObject; Читает объект из потока. Объект должен быть предварительно записан в поток через TStream.Put. Get вначале читает ID типа объекта (слово) из потока. Затем он находит соответствующий тип объекта, сравнивая ID с полем ObjType всех зарегистрированных типов объектов (см. тип TStreamRec). Наконец вызывает констрактор Load этого типа объекта для создания и загрузки объекта. Если ID типа объекта, считанного из потока, равен 0, Get возвращает указатель nil; если ID типа объекта не зарегистрирован (используя RegisterType) Get вызывает TStream.Error и возвращает указатель nil; иначе Get возвращает указатель на вновь созданный объект.

См. так же: TStream.Put, RegisterType, TStreamRec, Load методы

GetPos function GetPos: Longint; virtual; Перекрывается: Всегда Возвращает текущую позицию в потоке. Этот абстрактный метод должен всегда перекрываться.

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

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

Put procedure Put(P: PObject); Записывает объект в поток. Объект позже можно считать из потока, используя TStream.Get. Put вначале находит регистрационную запись типа этого объекта, сравнивая смещение VMT объекта с полем VmtLink всех зарегистрированных типов объектов (см. тип TStreamRec). Затем записывает ID типа объекта (поле ObjType регистрационной записи) в поток, и наконец вызывает метод Store этого типа объекта для записи объекта. Если аргумент Р, переданный в Put - nil, Put записывает в поток слово, содержащее 0. Если тип объекта в Р не зарегистрирован (испольуя RegisterType), Put вызывает TStream.Error и ничего не пишет в поток.




Начало  Назад  Вперед