- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话: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
您可能关注的文档
最近下载
- (高清版)-B-T 34590.2-2022 道路车辆 功能安全 第2部分:功能安全管理.pdf VIP
- 水果超市水果产期及收货标准.xls VIP
- 环境中抗生素抗性基因传播途径.docx VIP
- 2025年监理员考试题库及答案.docx VIP
- Hopewind禾望HV510系列高性能变频器用户手册.pdf
- 2025年度中秋国庆节前安全教育培训.pptx
- 多肉拼盘.pptx VIP
- 养生保健品商业计划书.pptx
- 第六章 智能网联汽车_3 课件(共33张PPT)- 《汽车文化》同步教学(上海交大版).pptx VIP
- 2025-2026学年小学劳动苏科版2023二年级上册-苏科版(2023)教学设计合集.docx
文档评论(0)