王朝网络
分享
 
 
 

使用帮助对象

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

VCL包含多种用于简化程序设计任务的非可视化对象。下面的内容主要描述一些简化下列任务的帮助对象:

· 使用列表。

· 使用串列表。

· 改变Windows注册表和.INI文件。

· 使用流。

2.5.1 使用列表

几种VCL对象提供创建并治理列表的功能:

· TList维护指针列表。

· TObjectList维护实例对象的内存治理列表。

· TComponentList维护组件的内存治理列表(TComponent派生类的实例)。

· TQueue 维护指针的先进先出列表。

· TStack 维护指针的后进先出列表。

· TObjectQueue维护对象的先进先出列表。

· TObjectStack维护对象的后进先出列表。

· TClassList维护类的类型列表。

· TCollection、TOwnedCollection和TCollectionItem维护非凡定义项的索引集合。

· TStringList维护串列表。

关于这些对象的更多信息,请参见联机帮助的VCL参考手册。

2.5.2 使用串列表

应用程序经常需要治理字符串列表。字符串列表的例子包含组合框里的项,备注里的行,字符串网格的行或列名。VCL通过TStrings对象及其后裔TStringList提供字符串列表的通用接口。除提供治理字符串列表的功能之外,这些对象还易于互操作; 例如,可编辑备注的行(它是TStringList的实例),然后把它们作为组合框中的项(也是TStringList的实例)。

字符串列表属性通过TStringList出现于对象观察器的Value列中。双击TStringList可打开串列表编辑,在其中可以编辑、添加或删除行。还可以利用串列表对象在运行时执行下列任务:

· 装载并保存串列表。

· 创建新的串列表。

· 操纵列表中的串。

· 把对象与串列表联系起来。

1.装载并保存串列表

串列表对象提供SaveToFile和LoadFromFile方法用于将串列表保存为文本文件或从文本文件中载入串列表。文本文件的每一行对应于串列表的一个串。用这些方法,可以通过将文件载入备注组件创建一种简单的文字编辑器,或保存组合框的列表项。

下面的例子将WIN.INI文件载入备注字段并制作一个名为WIN.BAK的备份文件。

2.创建新的串列表

串列表是典型的组件。若能方便地创建独立的字符串可节省时间,例如可为查询表保存串。创建并治理字符串列表的方式取决于列表为短期的(在单个例程中构造、使用和析构)或长期的(应用程序关闭之前都有效)。不管创建哪种类型的串列表,需牢记在完成工作时负责释放该列表。

(1) 短期的串列表

若只需在单个例程中使用串列表,可在同一地方创建、使用并析构串列表。这是使用串列表最安全的方法。由于串列表对象会为本身及其字符串分配内存,所以应使用try...__finally程序块来确保即使发生异常也能释放其内存。

1) 构造串列表对象。

2) 在try...__finally程序块的try部分,使用该串列表。

3) 在__finally部分,释放串列表对象。

下列事件通过构造、使用和消除串列表,处理程序响应单击按钮事件。

(2)长期的串列表

若串列表必须在应用程序运行时始终是可用的,则应在应用程序启动时构造串列表,在应用程序结束之前析构串列表。

1) 在应用程序主窗体的单元文件中,将TStrings类型的字段加到窗体的声明部分。

2) 为主窗体的构造编写事件处理程序,它在窗体出现之前执行,并会创建串列表并将其赋给在第一步中声明的字段。

3) 为窗体O n D e s t r o y事件编写事件处理程序,并在其中释放串列表。

本例使用长期串列表来记录用户鼠标对主窗体的单击,然后在应用程序结束之前将该列表保存到文件。

3.操纵列表中的串

常用串列表操作包括:

· 列表中的字符串计数。

· 访问非凡字符串。

· 查找字符串在列表中的位置。

· 迭代列表中的字符串。

· 在列表中加入字符串。

· 在列表中移动字符串。

· 在列表中删除字符串。

· 复制整个字符串列表。

(1) 列表中的字符串计数

只读属性Count返回列表中的字符串数。串列表使用零基准索引,所以Count值总是比最后一个串的索引值多一。

(2) 访问非凡字符串

数组属性Strings包含列表中的串,以零基准索引引用。因为是串列表的缺省属性,因此访问该列表时可省略Strings标识符;因此

(3) 查找字符串在列表中的位置

为定位字符串在列表中的位置,使用IndexOf方法。IndexOf返回列表中匹配参数的第一个字符串的索引,若没有找到则返回-1。IndexOf只查找准确匹配的字符串; 假如你要查找部分匹配的字符串,必须自己循环检查列表。例如,你可使用IndexOf来确定是否给定的文件名为列表框的项:

(4) 迭代列表中的字符串

为迭代列表中的字符串,使用从零到Count-1的for循环。本例子将列表框中的每个字符串都转换为大写字符。

(5) 在列表中加入字符串

为在列表中添加字符串,调用A d d方法,使用新字符串作为参数。要在列表中插入字符串表,调用Insert方法,传入两个参数:字符串及目标位置的索引。例如,若将“Insert”插入字符串表作为第三个串,可以使用:

为将一个列表中的串加到另一列表中,调用AddStrings:

(6) 在列表中移动字符串

为在列表中移动字符串,调用Move方法,传入两个参数: 字符串的索引及目标位置的索引。例如,若将字符串表的第三个串移动到第五的位置,可以使用:

(7) 在列表中删除字符串

为在列表中删除字符串,调用Delete方法,传入要删除串的索引。若你不知道要删除串的索引,先使用I n d e x O f方法定位它。要全部删除列表中的串,使用Clear方法。本例使用IndexOf和Delete方法来找到并删除一个串:

(8) 复制整个字符串列表

可使用Assign方法把源列表中的字符串复制到目的列表,覆盖目的列表的内容。若需附加而不是覆

盖目的列表的内容,使用AddStrings。例如,

将组合框中的行复制到备注(覆盖备注中的内容) 而

将组合框中的行添加到备注。

当制作串列表的本地拷贝,使用A s s i g n方法。假如简单的将一个串列表变量赋值给另一个

原始串列表对象将丢失,这经常会产生难以预料的结果。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
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- 王朝网络 版权所有