- 1
- 0
- 约1.58万字
- 约 22页
- 2017-06-07 发布于湖北
- 举报
面向对象技术是九十年代的主流技术,各类应用软件如果以面向对象的方法构造并且渗透面向对象的风格将使软件具有更高的品质。在面向对象程序设计中,对象式数据管理占有很重要的地位。在Delphi
Delphi是一个面向对象的可视化设计与面向对象的语言相结合的集成开发环境。Delphi的核心是部件。部件是对象的一种。Delphi应用程序完全是由部件来构造的,因此开发高性能的Delphi应用程序必然会涉及对象式数据管理技术。
对象式数据管理包括两方面的内容:
● 用对象来管理数据
● 对各类数据对象(包括对象和部件)的管理
DelphiDelphi的早期版本Turbo Pascal 中就曾有流(Stream)、群(Collection)和资源(Resource)等专门用于对象式数据管理的类。在Delphi中,这些功能得到了大大的加强。Delphi将对象式数据管理类归结为Stream对象(Stream)和Filer对象(Filer),并将它们应用于可视部件类库(VCL)的方方面面。它们不仅提供了在内存、外存和Windows资源中管理对象的功能,还提供了在数据库BLOB字段中对象的功能。
在本章中将介绍Stream对象和Filer对象的实现原理、应用方法以及在超媒体系统中的应用。这对于运用Delphi 开发高级应用是很重要的。
20.1 流式对象的实现原理和应用
Stream对象,又称流式对象,是TStream、THandleStream、TFileStream、TMemoryStream、TResourceStream和TBlobStream等的统称。它们分别代表了在各种媒介上存储数据的能力,它们将各种数据类型(包括对象和部件) 在内存、外存和数据库字段中的管理操作抽象为对象方法,并且充分利用了面向对象技术的优点,应用程序可以相当容易地在各种Stream对象中拷贝数据。
下面介绍各种对象的数据和方法及使用方法。
20.1.1 TStream对象
TStream对象是能在各种媒介中存储二进制数据的对象的抽象对象。从TStream 对象继承的对象用于在内存、Windows资源文件、磁盘文件和数据库字段等媒介中存储数据。
TStream中定义了两个属性:Size和Position。它们分别以字节为单位表示的流的大小和当前指针位置。TStream中定义的方法用于在各种流中读、写和相互拷贝二进制数据。因为所有的Stream对象都是从TStream中继承来的,所以在TStream中定义的域和方法都能被Stream对象调用和访问。此外,又由于面向对象技术的动态联编功能,TStream为各种流的应用提供了统一的接口,简化了流的使用;不同Stream对象是抽象了对不同存储媒介的数据上的操作,因此,TStream的需方法为在不同媒介间的数据拷贝提供了最简捷的手段。
20.1.1.1 TStream的属性和方法
1. Position属性
声明:property Position: Longint;
Position属性指明流中读写的当前偏移量。
2. Size属性
声明:property Size: Longint;
Size属性指明了以字节为单位的流的的大小,它是只读的。
3. CopyFrom方法
声明:function CopyFrom(Source: TStream; Count: Longint): Longint;
CopyFrom从Source所指定的流中拷贝Count个字节到当前流中, 并将指针从当前位置移动Count个字节数,函数返回值是实际拷贝的字节数。
4. Read方法
声明:function Read(var Buffer; Count: Longint): Longint; virtual; abstract;
Read方法从当前流中的当前位置起将Count个字节的内容复制到Buffer中,并把当前指针向后移动Count个字节数,函数返回值是实际读的字节数。如果返回值小于Count,这意味着读操作在读满所需字节数前指针已经到达了流的尾部。
Read方法是抽象方法。每个后继Stream对象都要根据自己特有的有关特定存储媒介的读操作覆盖该方法。而且流的所有其它的读数据的方法(如:ReadBuffer,ReadComponent等)在完成实际的读操作时都调用了Read方法。面向对象的动态联编的优点就体现在这儿。因为后继Stream对象只需覆盖Read方法,而其它读操作(如ReadBuffer、ReadComponent等)都不需要重新定义,而且TStream还提供了统一的接口。
5. ReadBuffer方法
声明:procedure
您可能关注的文档
- 数据库复习资料要领.pdf
- s7-300plc及s120DP通讯.docx
- 数据库概论模拟考试试卷与答案B.doc
- S120组态和和S7-300通讯范例.pdf
- 第二篇(一)贸易术语2010.ppt
- 数据库给学生期末复习题要领.doc
- 第二篇_软件生命周期过程.ppt
- 数据库工程师——Oracle数据库集群管理要领.pdf
- S7300和组态王通过工业以态网通讯.doc
- 第二篇3篇颜色视觉现象4篇颜色视觉机理模型.ppt
- 广东省广州省实验中学教育集团2025-2026学年八年级上学期期中考试物理试题(解析版).docx
- 广东省广州大学附属中学2025-2026学年八年级上学期奥班期中物理试题(解析版).docx
- 广东省广州市第八十六中学2025-2026学年八年级上学期期中物理试题(含答案).docx
- 广东省广州市第八十九中学2025-2026学年八年级上学期期中考试物理试题(解析版).docx
- 广东省广州市第二中学2025-2026学年八年级上学期期中考试物理试题(含答案).docx
- 广东省广州市第八十六中学2025-2026学年八年级上学期期中物理试题(解析版).docx
- 广东省广州市第八十九中学2025-2026学年八年级上学期期中考试物理试题(含答案).docx
- 广东省广州市第二中学2025-2026学年八年级上学期期中考试物理试题(解析版).docx
- 2026《中国人寿上海分公司营销员培训体系优化研究》18000字.docx
- 《生物探究性实验教学》中小学教师资格模拟试题.docx
最近下载
- 医院医养结合功能区设计方案.docx
- 老年人防诈骗宣传案例分析报告.docx VIP
- 聚羧酸减水剂msds报告.docx
- 个人信用报告模板简版带水印可编辑2025年9月新版.pdf VIP
- QBNM-PS-0001—2019 汽车车身油漆涂层标准.pdf VIP
- 2025铁路旅客列车餐饮服务卫生规范.pdf VIP
- 奉节脐橙电子商务发展中存在的问题及对策研究.docx VIP
- 城中村改造建设项目可行性研究报告.docx VIP
- 2024党员围绕“学习贯彻党的创新理论、党性修养提高、联系服务群众、党员发挥先锋模范作用、铸牢中华民族共同体意识方面”5个方面组织生活会发言材料多篇.docx VIP
- 《养老之女性篇》课件.pptx VIP
原创力文档

文档评论(0)