其他语言

位置:IT落伍者 >> 其他语言 >> 浏览文章

DELPHI基础教程:开发Delphi对象式数据管理功能(三)[4]


发布日期:2020年09月07日
 
DELPHI基础教程:开发Delphi对象式数据管理功能(三)[4]

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游戏开发实践指南

[] [] [] []

               

上一篇:DELPHI基础教程:开发Delphi对象式数据管理功能(二)[1]

下一篇:DELPHI基础教程:开发Delphi对象式数据管理功能(三)[3]