使用帮助对象 二
2008-03-08 22:02:16 来源:WEB开发网核心提示:4. 把对象与串列表联系起来串列表除使用Strings属性保存串之外,还可使用Objects属性维护对对象的引用,使用帮助对象 二,与Strings相同,Objects也是带有零基准索引的数组,这些对象答应应用程序搜索流中的任意位置,TStream属性提供关于流的信息,Objects最常见的用途是为属主绘制控件把位图与
4. 把对象与串列表联系起来
串列表除使用Strings属性保存串之外,还可使用Objects属性维护对对象的引用。与Strings相同,Objects也是带有零基准索引的数组。Objects最常见的用途是为属主绘制控件把位图与串联系起来。
使用AddObject或InsertObject方法可一步实现将串及其关联的对象加入列表。IndexOfObject返回列表中第一个与指定对象关联的串的索引。Delete、Clear和Move方法都对串和对象同时进行操作;例如,删除一个串就删除了相应的对象(假如存在)。
为了将对象与现有的串关联,在Objects属性中分配给该对象与串相同的索引。不能只添加对象而不添加相应的串。
2.5.3 Windows注册表和INI文件
Windows系统注册表是一种层次数据库,应用程序可用来存储配置信息。VCL类TRegistry提供读写注册表的方法。
直到Windows95之前,应用程序通常将配置信息存储在扩展名为.INI的初始化文件中。VCL提供下列类帮助维护或移植使用INI文件的程序:
· TRegistry处理注册表。
· TIniFile或TMemIniFile处理Windows3.x的INI文件。
· TRegistryIniFile既可处理注册表,也可处理INI文件。除了读写系统注册表外,TRegistryIniFile的属性和方法与TIniFile相类似。通过使用TCustomIniFile(TIniFile、TMemIniFile和TRegistryIniFile共同的祖先)类型的变量,可编写根据不同的调用地点决定是访问注册表或是访问INI文件的通用代码。
1.使用TINIFile
INI文件格式仍然被广泛使用,C++Builder配置文件(如DSKDesktop设置文件)也使用了这种格式。因为这种文件格式相当流行,VCL提供了一种类来使读写这些文件变得非常轻易。在初始化INIFile对象时,将INI文件名作为参数传入构造函数。如文件不存在,则自动创建一个。然后就可使用ReadString、ReadInteger或ReadBool来随意阅读INI文件。若需阅读整个INI文件,可使用ReadSection方法。同样,可使用WriteBool、WriteInteger或WriteString进行写操作。下例是在窗体构造时从INI文件中读配置信息而在OnClose事件处理程序中写配置信息。
每个Read例程需要三个参数。第一个参数给出INI文件的节;第二个参数给出需读的值;第三个参数是一缺省值,防止该节或值不处于INI文件之中。同样,若节或值不存在,Write例程可创建节和/或值。
下例的代码新创建一个INI文件:
应用程序执行时,在创建窗体时读INI文件窗体并在OnClose事件处理程序中写INI文件。
2.使用TRegistry
大多数32-位应用程序将其信息存储在注册表而不是INI文件中,因为注册表是层次结构,更加合理,并且没有INI文件中的尺寸限制。TRegistry对象包含一些方法来打开、关闭、保存移动、复制和删除键值。下例从注册表输入检索值:
3.使用TRegINIFile
假如你习惯INI文件但要将配置信息改为存储到注册表,可使用TRegINIFile类。TRegINIFile设计为使注册表项看上去像INI文件项。所有的TINIFile的方法(读和写)都存在于TRegINIFile。当构造TRegINIFile对象时,传入的参数(对INIFile对象来说是文件名)成为注册表根部的用户键值,所有节及值都由此分支。实际上,该对象极大地简化了注册表的接口,因此更多信息参见VCL帮助TReyINfile主题。可以根本不用改变现有代码就可用它来代替TRegistry组件。 QQread.com 推出各大专业服务器评测 linux服务器的安全性能 SUN服务器 HP服务器 DELL服务器 IBM服务器 联想服务器 浪潮服务器 曙光服务器 同方服务器 华硕服务器 宝德服务器
4.使用TCanvas
TCanvas封装了Windows设备场境,可处理窗体、可视化容器(如面板)的绘制及打印机对象(在下节讲述)等。使用TCanvas对象,你可不再担心如何分配绘图笔、画刷、调色板等,所有的分配和释放的工作都由TCanvas对象完成。
TCanvas包含大量的图形例程用来绘制线、几何外形、多边形、字体等所有包含于TCanvas中的控件。下例是一个按钮事件处理程序,它从左上方顶点画一条线到窗体中间,并且在窗体中输出一些文本:
TCanvas对象还可防止Windows图形错误,如它可将设备场境,绘图笔,画刷等还原到绘图操作之前的状态。在C++Builder中,任何需要或可能绘图的地方都会用到TCanvas,并且使用它也是最简单可靠的绘图方法。
5.使用TPRinter
TPrinter对象封装Windows打印机具体信息。使用Printers属性可得到已安装和可用的打印机的列表。该打印机对象使用一种TCanvas(等同于窗体的TCanvas),可使任何能在窗体绘制的都能被打印。为打印图像,在任何需打印的画布图形(包括以TextOut方法输出的文本)后调用BeginDoc,并通过调用EndDoc方法将任务分发给打印机。
本例在窗体中使用了一个按钮和一个备注。当用户单击该按钮时,备注内容被打印成边界为200像素的页。
为成功运行本例,在单元文件中加入头文件< Printers.hpp >。
6.使用流
使用非凡的流对象可读写存储媒介。TStream的后裔都实现了访问特定存储媒介的方法、如磁盘文件,动态内存等等。TStream的后裔包括TFileStream、TStringStream、TMemoryStream、TBlobStream和TWinSocketStream。除读写方法之外,这些对象答应应用程序搜索流中的任意位置。TStream属性提供关于流的信息,如尺寸和当前位置。
串列表除使用Strings属性保存串之外,还可使用Objects属性维护对对象的引用。与Strings相同,Objects也是带有零基准索引的数组。Objects最常见的用途是为属主绘制控件把位图与串联系起来。
使用AddObject或InsertObject方法可一步实现将串及其关联的对象加入列表。IndexOfObject返回列表中第一个与指定对象关联的串的索引。Delete、Clear和Move方法都对串和对象同时进行操作;例如,删除一个串就删除了相应的对象(假如存在)。
为了将对象与现有的串关联,在Objects属性中分配给该对象与串相同的索引。不能只添加对象而不添加相应的串。
2.5.3 Windows注册表和INI文件
Windows系统注册表是一种层次数据库,应用程序可用来存储配置信息。VCL类TRegistry提供读写注册表的方法。
直到Windows95之前,应用程序通常将配置信息存储在扩展名为.INI的初始化文件中。VCL提供下列类帮助维护或移植使用INI文件的程序:
· TRegistry处理注册表。
· TIniFile或TMemIniFile处理Windows3.x的INI文件。
· TRegistryIniFile既可处理注册表,也可处理INI文件。除了读写系统注册表外,TRegistryIniFile的属性和方法与TIniFile相类似。通过使用TCustomIniFile(TIniFile、TMemIniFile和TRegistryIniFile共同的祖先)类型的变量,可编写根据不同的调用地点决定是访问注册表或是访问INI文件的通用代码。
1.使用TINIFile
INI文件格式仍然被广泛使用,C++Builder配置文件(如DSKDesktop设置文件)也使用了这种格式。因为这种文件格式相当流行,VCL提供了一种类来使读写这些文件变得非常轻易。在初始化INIFile对象时,将INI文件名作为参数传入构造函数。如文件不存在,则自动创建一个。然后就可使用ReadString、ReadInteger或ReadBool来随意阅读INI文件。若需阅读整个INI文件,可使用ReadSection方法。同样,可使用WriteBool、WriteInteger或WriteString进行写操作。下例是在窗体构造时从INI文件中读配置信息而在OnClose事件处理程序中写配置信息。
每个Read例程需要三个参数。第一个参数给出INI文件的节;第二个参数给出需读的值;第三个参数是一缺省值,防止该节或值不处于INI文件之中。同样,若节或值不存在,Write例程可创建节和/或值。
下例的代码新创建一个INI文件:
应用程序执行时,在创建窗体时读INI文件窗体并在OnClose事件处理程序中写INI文件。
2.使用TRegistry
大多数32-位应用程序将其信息存储在注册表而不是INI文件中,因为注册表是层次结构,更加合理,并且没有INI文件中的尺寸限制。TRegistry对象包含一些方法来打开、关闭、保存移动、复制和删除键值。下例从注册表输入检索值:
3.使用TRegINIFile
假如你习惯INI文件但要将配置信息改为存储到注册表,可使用TRegINIFile类。TRegINIFile设计为使注册表项看上去像INI文件项。所有的TINIFile的方法(读和写)都存在于TRegINIFile。当构造TRegINIFile对象时,传入的参数(对INIFile对象来说是文件名)成为注册表根部的用户键值,所有节及值都由此分支。实际上,该对象极大地简化了注册表的接口,因此更多信息参见VCL帮助TReyINfile主题。可以根本不用改变现有代码就可用它来代替TRegistry组件。 QQread.com 推出各大专业服务器评测 linux服务器的安全性能 SUN服务器 HP服务器 DELL服务器 IBM服务器 联想服务器 浪潮服务器 曙光服务器 同方服务器 华硕服务器 宝德服务器
4.使用TCanvas
TCanvas封装了Windows设备场境,可处理窗体、可视化容器(如面板)的绘制及打印机对象(在下节讲述)等。使用TCanvas对象,你可不再担心如何分配绘图笔、画刷、调色板等,所有的分配和释放的工作都由TCanvas对象完成。
TCanvas包含大量的图形例程用来绘制线、几何外形、多边形、字体等所有包含于TCanvas中的控件。下例是一个按钮事件处理程序,它从左上方顶点画一条线到窗体中间,并且在窗体中输出一些文本:
TCanvas对象还可防止Windows图形错误,如它可将设备场境,绘图笔,画刷等还原到绘图操作之前的状态。在C++Builder中,任何需要或可能绘图的地方都会用到TCanvas,并且使用它也是最简单可靠的绘图方法。
5.使用TPRinter
TPrinter对象封装Windows打印机具体信息。使用Printers属性可得到已安装和可用的打印机的列表。该打印机对象使用一种TCanvas(等同于窗体的TCanvas),可使任何能在窗体绘制的都能被打印。为打印图像,在任何需打印的画布图形(包括以TextOut方法输出的文本)后调用BeginDoc,并通过调用EndDoc方法将任务分发给打印机。
本例在窗体中使用了一个按钮和一个备注。当用户单击该按钮时,备注内容被打印成边界为200像素的页。
为成功运行本例,在单元文件中加入头文件< Printers.hpp >。
6.使用流
使用非凡的流对象可读写存储媒介。TStream的后裔都实现了访问特定存储媒介的方法、如磁盘文件,动态内存等等。TStream的后裔包括TFileStream、TStringStream、TMemoryStream、TBlobStream和TWinSocketStream。除读写方法之外,这些对象答应应用程序搜索流中的任意位置。TStream属性提供关于流的信息,如尺寸和当前位置。
赞助商链接