WriteChar方法用于写入字符
procedure TWriterWriteChar(Value: Char)
begin
WriteString(Value)
end;
字符类型的读写是用读写字符串的方法在读的时候判断字节数为时则为字符型
⑶ 部件的写入
TWriter对象中与写入部件有关的方法有WriteSignatureWritePrefixWriteComponentWriteDescendant和WriteRootComponent
WriteSignature方法用于往流中写入Filer对象标签
procedure TWriterWriteSignature;
begin
Write(FilerSignature SizeOf(FilerSignature))
end;
FilerStgnature是字符串常量其值为TPF代表对象标签
WritePrefix方法用于在写入部件前写入ffInherited和ffChildPos标志这些标志表示部件的继承特征和创建序值特征
procedure TWriterWritePrefix(Flags: TFilerFlags; AChildPos: Integer)
var
Prefix: Byte;
begin
if Flags <> [] then
begin
Prefix := $F or Byte(Flags)
Write(Prefix SizeOf(Prefix))
if ffChildPos in Flags then WriteInteger(AChildPos)
end;
end;
如果ffChildPos置位则存入部件在Owner中的创建序值更详细的信息请参阅TReader的ReadPrefix方法
WriteComponent方法往流中写入部件
procedure TWriterWriteComponent(Component: TComponent)
function FindAncestor(const Name: string) TComponent;
begin
…
end;
begin
Include(ComponentFComponentState csWriting)
if Assigned(FAncestorList) then
Ancestor := FindAncestor(ComponentName)
ComponentWriteState(Self)
Exclude(ComponentFComponentState csWriting)
end;
方法中用Component的WritState方法写入部件的属性在写入之前将ComponentFComponentState置为csWriting写入完后再将csWriting复位
WriteDescendant是根据祖先AAncestor的情况写入部件Root
procedure TWriterWriteDescendent(Root: TComponent; AAncestor: TComponent)
begin
FRootAncestor := AAncestor;
FAncestor := AAncestor;
FRoot := Root;
WriteSignature;
WriteComponent(Root)
end;
方法先调用WriteSignature方法写入Filer对象标签然后调用WriteComponent将部件Root写入流
WriteRootComponent方法则是调用WriteDescendant方法写入部件只是将后者的Ancestor参数以nil值传入
procedure TWriterWriteRootComponent(Root: TComponent)
begin
WriteDescendent(Root nil)
end;
返回目录DELPHI基础教程
编辑推荐
Java程序设计培训视频教程
JEE高级框架实战培训视频教程
Visual C++音频/视频技术开发与实战
Oracle索引技术
ORACLEG数据库开发优化指南
Java程序性能优化让你的Java程序更快更稳定
C嵌入式编程设计模式
Android游戏开发实践指南
[] [] [] []