【2017年整理】第三章 字符串列表及应用(二).docVIP

【2017年整理】第三章 字符串列表及应用(二).doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
3.1.4 往字符串列表中加入对象    字符串列表除了能在Strings属性中贮存字符串外,还可以在Objects属性中贮存对象。与Stings一样,Objects也是可以索引的,它是对象的索引。   在应用程序使用列表中的字符串与列表中是否有对象没有多大关系。除非程序特地访问对象,否则Objects中的内容不变,Delphi只是保存了这些信息,应用程序在必要时对其进行操作。   有些字符串列表忽略加入的对象。如TMemo部件中代表行的列表对加入其中的对象不保存。还有一些字符串列表,把对象与字符串联系起来,如TNotebook部件的Pages属性,它同时保存着页的名字和代表页的对象。如果应用程序往Pages中加入或删除字符串,Delphi自动的加入或删除与之相应的对象。   虽然程序可分配任何类型的对象到列表中,但最常用的是在自画式控制中把位图与字符串联系起来,注意位图与字符串成对使用。   Delphi在释放对象的内存空间时并不破坏与之相应的字符串。  3.1.4.1 操作字符串列表中的对象    对于字符串的每一种操作方法,列表中的对象均有相应的方法。例如,应用程序可利用对象的索引来访问对象。与字符串不同的是,不能省略Objects,因为Strings才是列表的缺省属性。   表3.1中总结了字符串对字符串和对象操作的方法。  表3.1 TStrings的字符串属性和对象操作属性的方法 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━  ??????????????? 操 作    字 符 串        对   象 ───────────────────────────────    访  问      Strings属性 ?????????????????? Objects属性    加入项目      Add 方法       AddObjects方法    插入项目      Insert方法      InsertObjects方法 ?????????? 项目定位      Indexof方法 ???????????????? IndexofObject方法 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━    Delete,Clear,More操作整个项目,即删除字符串时把相应的对象也删除了。但LoadFromFile,SaveToFile方法只对字符串进行操作。  3.1.4.2 加入对象    如果把对象与已存在的字符串联系起来,Delphi将分配给该对象同样的索引号。例如,一个叫Fruits的列表中有字符串(apple),程序可将名为AppleBitmap的位图与apple字符相联系。    With Fruits do Objects[Indexof(apple)]:=AppleBitmap;  另一种方法是调用列表的AddObject方法,AddObject有两个参数:字符串和对象,如下:    Fruits AddObject(Apple,AppleBitmap);  3.2 字符串列表应用  ????????? Delphi应用程序经常要用到字符串列表,我们编写的strlist. dpr是应用字符串列表的简单程序。程序运行状态如图3.2所示。列表框列出了屏幕支持的各种字体名称,并且以名称所代表的字体显示在列表中;Tabs的标签不只以字符串来表示,而且附有位图。这就是所谓的自画式控制。下面介绍字符串列表在自画式控制中的应用。 ???????? 列表框、组合框、Tabset部件中有一个叫“自画(Ownerdraw)”的风格,它能替代Windows的文本输出,部件的自画式控制在运行状态对每个项目进行重新绘制。最常用的是用图像代替文本输出。   自画式控制有一个共同特点:它们都包含有项目列表,缺省情况下这些列表就是字符串列表,Windows把它们当成文本显示。Delphi可以把字符串列表与某一对象相联系,这就使得应用程序能用对象来绘制项目。   通常,创建自画式控制有以下三个步骤:   1. 设置自画风格;   2. 把图像对象加入字符串列表中;   3. 绘制自画项目。  3.2.1 设置自画风格    每个能进行自画式控制的部件都有一个叫Style的属性,Style决定部件是以缺省方式还是以自画方式绘制项目。   对于列表框和组合框,也有自画式风格选项,表3.2列出了Style的取值及含义。  表3.2 Style的取值及含义 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━    Style ???????????? 含  义        举   例 ─────────────────────────────────    Fixed ?????

文档评论(0)

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档