分享
 
 
 

使用帮助对象二

王朝other·作者佚名  2008-06-01
窄屏简体版  字體: |||超大  

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属性提供关于流的信息,如尺寸和当前位置。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有