delphi的组件读写机制(一)
【程序编程相关:Delphi 控制Excel】一.流式对象(stream)与读写对象(filer)的介绍 【推荐阅读:DBGrid 应用全书(一)】
【扩展信息:DBGrid使用全书(二)】 在面向对象java/j2me/code/ target=_blank>程序设计中,对象式数据管理占有很重要的地位.在delphi中,对对象式数据管理的支持方式是其一大特色. delphi是一个面向对象的可视化设计与面向对象的语言相结合的集成开发环境.delphi的核心是组件.组件是对象的一种.delphi应用程序完全是由组件来构造的,因此开发高性能的delphi应用程序必然会涉及对象式数据管理技术.对象式数据管理包括两方面的内容:
● 用对象来管理数据 ● 对各类数据对象(包括对象与组件)的管理delphi将对象式数据管理类归结为stream对象(stream)与filer对象(filer),并将它们应用于可视组件类库(vcl)的方方面面.它们提供了丰富的在内存.外存与windows资源中管理对象的功能,
stream对象,又称流式对象,是tstream.thandlestream.tfilestream.tmemorystream.tresourcestream与tblobstream等的统称.它们分别代表了在各种媒介上存储数据的能力,它们将各种数据类型(包括对象与组件) 在内存.外存与数据库字段中的管理操作抽象为对象方法,并且充分利用了面向对象技术的优点,应用程序可以相当容易地在各种stream对象中拷贝数据. 读写对象(filer)包括tfiler对象.treader对象与twriter对象.tfiler对象是文件读写的基础对象,在应用程序中使用的主要是treader与twriter.treader与twriter对象都直接从tfiler对象继承.tfiler对象定义了filer对象的基本属性与方法. filer对象主要完成两大功能: ● 存取窗体文件与窗体文件中的组件 ● 提供数据缓冲,加快数据读写操作为了对流式对象与读写对象有一个感性的认识,先来看一个例子.
a)写文件 procedure tfomr1.writedata (sender: tobject); r; var filestream:tfilestream; mywriter:twriter; i: integer begin filestream:=tfilestream.create(‘c:\test.txt’,fmopenwrite);//创建文件流对象 mywriter:=twriter.create(filestream,1024); //把mywriter与filestream联系起来 mywriter. writelistbegin; //写入列表开始标志 for i:=0 to memo1.lines.count-1 do mywriter.writestring(memo1.lines[i]); //保存memo组件中文本信息到文件中 mywriter.writelistend; //写入列表结束标志 filestream.seek(0,sofrombeginning); //文件流对象指针移到流起始位置 mywriter.free; //释放mywriter对象 filestream.free; //释放filestream对象 end; b)读文件 procedure tform1.readdata(sender: tobject); var filestream:tfilestream; myreader:treader; begin filestream:=tfilestream.create(‘c:\test.txt’,fmopenread); myreader:=trreader.create(filestream,1024); //把myreader与filestream联系起来 myreader.readlistbegin; //把写入的列表开始标志读出来 memo1.lines.clear; //清除memo1组件的文本内容 while not myreader.endoflist do //注意treader的一个方法:endoflist begin memo1.lines.add(myreader.readstring); //把读出的字符串加到memo1组件中 end; myreader.readlistend; //把写入的列表结束标志读出来 myreader.free; //释放myreader对象 filestream.free; //释放filestream对象 end; 上面两个过程,一个为写过程,另一个为读过程.写过程通过twriter,利用tfilestream把一个memo中的内容(文本信息)存为一个保存在磁盘上的二进制文件.读过程刚好与写过程相反,通过treader,利用tfilestream把二进制文件中的内容转换为文本信息并显示在memo中.运行程序可以看到,读过程忠实的把写过程所保存的信息进行了还原. 下图描述了数据对象(包括对象与组件).流式对象与读写对象之间的关系. 图(一)值得注意的是,读写对象如tfiler对象.treader对象与twriter对象等很少由应用程序编写者进行直接的调用,它通常用来读写组件的状态,它在读写组件机制中扮演着非常重要的角色.
... 下一页