如题

解决方案 »

  1.   

     TCustomMemoryStream = class(TStream)
      private
        FMemory: Pointer;
        FSize, FPosition: Longint;
      protected
        procedure SetPointer(Ptr: Pointer; Size: Longint);
      public
        function Read(var Buffer; Count: Longint): Longint; override;
        function Seek(Offset: Longint; Origin: Word): Longint; override;
        procedure SaveToStream(Stream: TStream);
        procedure SaveToFile(const FileName: string);
        property Memory: Pointer read FMemory;
      end;{ TMemoryStream }  TMemoryStream = class(TCustomMemoryStream)
      private
        FCapacity: Longint;
        procedure SetCapacity(NewCapacity: Longint);
      protected
        function Realloc(var NewCapacity: Longint): Pointer; virtual;
        property Capacity: Longint read FCapacity write SetCapacity;
      public
        destructor Destroy; override;
        procedure Clear;
        procedure LoadFromStream(Stream: TStream);
        procedure LoadFromFile(const FileName: string);
        procedure SetSize(NewSize: Longint); override;
        function Write(const Buffer; Count: Longint): Longint; override;
      end;就这样的关系
      

  2.   

    TStream 是一个通用 Stream 抽像, 提供 Position, Read, Write 主要的流操作几个方法&属性相关的有 TMemoryStream , TFileStream, TSocketStream都派生自 TStream, SocketStream 中没有 Position
      

  3.   

    一个是抽象的一个子类化了TStream 不能直接实例化TmemoryStream可以利用TStream 可以TMemoryStream TFileStream 等等 从TStream继承来的类可以方便地交换传递数据...