龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > 软件开发 > C/C++开发 >

使用帮助对象[组图]

时间:2009-12-22 15:42来源:未知 作者:admin 点击:
分享到:
VCL包含多种用于简化程序设计任务的非可视化对象。下面的内容主要描述一些简化下列任务的帮助对象: 使用列表。 使用串列表。 改变Windows注册表和.INI文件。 使用流。 2.5.1 使用列表

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方法。假如简单的将一个串列表变量赋值给另一个

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

  

  

精彩图集

赞助商链接