Delphi 的持续机制浅探.docx

  1. 1、本文档共26页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

问题:Delphi的持续机制浅探(积分:100,回复:10,阅读:237)

分类:ObjectPascal(版主:menxin,cAkk)

来自:savetime,时间:2004-1-244:22:00,ID:2421751Delphi的持续机制浅探

savetime2k@ 2004.1.24

目录

[显示:小字体|大字体]

===============================================================================

DFM文件与持续机制(persistent)

ReadComponentResFile/WriteComponentResFile函数

Delphi持续机制框架简述

一个TForm对象的创建过程

TStreamClass和TStream.ReadComponent方法

TReaderClass和TReader.ReadRootComponent方法

TReader.ReadPrefix方法

TComponent.ReadState虚方法

TReader.ReadData方法

TReader.ReadDataInner方法

TReader.ReadProperty方法

TPersistent.DefineProperties虚方法

TReader.ReadComponent方法

TReader.ReadValue/TReader.NextValue系列方法

TReader.ReadStr方法

TReader.ReadInteger/ReadString/ReadBoolean系列方法

TReader.Read方法

ObjectBinaryToText/ObjectTextToBinary函数

===============================================================================

本文排版格式为:

正文由窗口自动换行;所有代码以80字符为边界;中英文字符以空格符分隔。

(作者保留对本文的所有权利,未经作者同意请勿在在任何公共媒体转载。)

正文

===============================================================================

DFM文件与持续机制(persistent)

===============================================================================

我们在使用Delphi的IDE进行快速开发的时候,可以方便地从元件面板上拖放元件(component)至表单,完成表单的界面和事件设计。Delphi将这些界面的设计期信息保存在表单相应的DFM文件中,方便程序员随时读取和修改。

DFM文件根据元件在表单上的嵌套层次存放元件属性,以下是一个DFM文件的示例:

objectForm1:TForm1

...

Left=192

Top=107

Width=544Caption=Form1

objectButton1:TButtonLeft=24

Top=16

Caption=Button1

OnClick=Button1Clickend

...

end

应用程序编译之后,DFM文件的信息被二进制化了,这些二进制信息存储在应用程序的资源(resource)段中。每个表单(也就是 class)及表单上的元件在资源段中存储为与表单同名的资源,可以使用FindResourceAPI获得。应用程序在运行期创建表单实例的时候,会从资源段中读取表单的属性,还原设计期的设置。这种将类型信息保存在文件中,并且可以在运行期恢复类型的操作,在本文中被称之为持续(persistent)机制。持续机制是Delphi成为RAD工具的原因之一。

持续机制和RTTI是紧密结合的,但本文不讨论RTTI(关于RTTI可参考我前几天写的两篇笔记),只讨论实现持续机制的总体框架及相关类(class)。这些类包括TStream、TFiler、TReader、TWriter、TParser、TPersisetent、TComponent、TCustomForm等。

===============================================================================

ReadComponentR

文档评论(0)

dqy118 + 关注
官方认证
内容提供者

该用户很懒,什么也没介绍

认证主体上海海滋实业有限公司
IP属地上海
统一社会信用代码/组织机构代码
91310115MA7DL1JF2N

1亿VIP精品文档

相关文档