📄 ddocstore.pas
字号:
unit ddocstore;
{$I be_define.inc}
interface
uses Classes, ddoc;
procedure LoadBlockDocument(Stream: TStream; BlockDocument: TComponent);
procedure SaveBlockDocument(Stream: TStream; BlockDocument: TComponent);
procedure LoadBlockDocumentBinary(Stream: TStream; BlockDocument: TComponent);
procedure SaveBlockDocumentBinary(Stream: TStream; BlockDocument: TComponent);
implementation {===============================================================}
procedure SaveBlockDocument(Stream: TStream; BlockDocument: TComponent);
var
BinStream: TMemoryStream;
StrStream: TStringStream;
s: string;
begin
if BlockDocument = nil then Exit;
BinStream := TMemoryStream.Create;
try
StrStream := TStringStream.Create(S);
try
BinStream.WriteComponent(BlockDocument);
BinStream.Seek(0, soFromBeginning);
ObjectBinaryToText(BinStream, StrStream);
StrStream.Seek(0, soFromBeginning);
Stream.CopyFrom(StrStream, StrStream.Size);
finally
StrStream.Free;
end;
finally
BinStream.Free
end;
end;
procedure LoadBlockDocument(Stream: TStream; BlockDocument: TComponent);
var
StrStream: TStringStream;
BinStream: TMemoryStream;
begin
{ Load object }
StrStream := TStringStream.Create('');
try
StrStream.CopyFrom(Stream, Stream.Size);
StrStream.Seek(0, soFromBeginning);
BinStream := TMemoryStream.Create;
try
ObjectTextToBinary(StrStream, BinStream);
BinStream.Seek(0, soFromBeginning);
BinStream.ReadComponent(BlockDocument);
finally
BinStream.Free;
end;
finally
StrStream.Free;
end;
end;
procedure SaveBlockDocumentBinary(Stream: TStream; BlockDocument: TComponent);
begin
Stream.WriteComponent(BlockDocument);
end;
procedure LoadBlockDocumentBinary(Stream: TStream; BlockDocument: TComponent);
begin
Stream.ReadComponent(BlockDocument);
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -