TCustomMemoryStream = class(TStream)
private
FMemory: Pointer;
FSize, FPosition: NativeInt;
protected
procedure SetPointer(Ptr: Pointer; const Size: NativeInt);
public
function Read(var Buffer; Count: Longint): Longint; override;
function Read(Buffer: TBytes; Offset, Count: Longint): Longint; override;
function Seek(const Offset: Int64; Origin: TSeekOrigin): Int64; override;
procedure SaveToStream(Stream: TStream); virtual;
procedure SaveToFile(const FileName: string);
property Memory: Pointer read FMemory;
end; // deprecated 'Use TBytesStream';
{ 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;
function Write(const Buffer: TBytes; Offset, Count: Longint): Longint; override;
end; // deprecated 'Use TBytesStream';
procedure TMemoryStream.Clear;
begin
SetCapacity(0);
FSize := 0;
FPosition := 0;
end;
子类如何访问父类的私有变量
不怪不怪 因为它们在同一个单元中,也算是友类了
Delphi当中同单元(Unit)当中就可以访问。
因为在Delphi2007及之后,增加了strict关键字,比如strict private,那样就无法访问了。