- 1、本文档共26页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 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
您可能关注的文档
- couldyoupleasecleanyourroom测试题附答案.docx
- CPCD80A型叉车液压系统油温过高的原因分析及其改进.docx
- CPSM2 练习分析和总结.docx
- CSS评分表多伦多临床评分系统.docx
- CTP奇迹印版推动印刷业的新技术.docx
- C程序设计 第八章 指针和引用.docx
- C创建Ecel表分析和总结.docx
- C对Access数据库做的添加删除查找修改的例子.docx
- C级检修汽轮机本体检修施工方案.docx
- C课程教学大纲.docx
- 基层检察实践新探:J省S县羁押必要性审查的实证剖析与路径优化.docx
- 金融衍生品风险剖析与美国《金融监管改革法案》的多维审视.docx
- 论中小学教师批评权的法理基础与法律保障构建.docx
- 环境伦理引领下的环境法变革与重塑:理论、困境与实践进路.docx
- 结核分枝杆菌耐药状况剖析:机制、监测与应对策略.docx
- 全髋关节置换术与切开复位内固定术治疗老年股骨颈骨折疗效的Meta分析:基于多维度数据的精准剖析.docx
- 新课标高中优秀作文精品集锦.doc
- 新时期师德师风现状及其对策思考.doc
- R公司员工激励机制深度剖析与创新路径.docx
- 英语报刊隐喻剖析与汉译策略探索:基于跨文化视角.docx
文档评论(0)