从列表中删除所有字符从列表中删除所有字符
20.4.3 TControl类
T C o n t r o l类定义了许多属性、方法和事件,一般用于可视组件。例如, T C o n t r o l引入了组件显示自
己的能力。T C o n t r o l类包含了位置属性,如To p和L e f t,也包含了尺寸属性,如Wi d t h和H e i g h t (即水平和
垂直尺寸)。其他属性还有C l i e n t R e c t、C l i e n t Wi d t h和C l i e n t H e i g h t。
T C o n ...
从列表中删除所有字符
20.4.3 TControl类
T C o n t r o l类定义了许多属性、方法和事件,一般用于可视组件。例如, T C o n t r o l引入了组件显示自
己的能力。T C o n t r o l类包含了位置属性,如To p和L e f t,也包含了尺寸属性,如Wi d t h和H e i g h t (即水平和
垂直尺寸)。其他属性还有C l i e n t R e c t、C l i e n t Wi d t h和C l i e n t H e i g h t。
T C o n t r o l还引入了决定外观的属性,如Vi s i b l e、E n a b l e d和C o l o r。你甚至能通过它的F o n t属性为其
文本指定字体。其文本是通过它的属性Te x t和C a p t i o n提供的。 T C o n t r o l还引入了一些
事件,如鼠标事件O n C l i c k、O n D b l C l i c k、O n M o u s e D o w n、O n M o u s e -
M o v e和O n M o u s e U p。此外,它还引入了拖放事件,如O n D r a g O v e r、O n D r a g D r o p和O n E n d D r a g。
T C o n t r o l本身没有什么用处,你决不能创建它的派生类。
被T C o n t r o l引入的另一个概念是它可以有一个父组件。虽然T C o n t r o l可以有一个父,但它的父必须
从列表中删除所有字符串
删除由I n d e x指定位置的字符串
交换由两个I n d e x值指定的字符串的位置
返回字符串S在列表中的位置
把字符串S插入到列表中由I n d e x指定的位置
把C u r I n d e x位置的字符串移动到N e w I n d e x位置
从文本文件F i l e N a m e中读取字符串列表
把字符串列表保存到文本文件F i l e N a m e中
AddStrings(Strings: TStrings)
Assign(Source: TPersistent)
C l e a r
Delete(Index: Integer)
Exchange(Index1, Index2: Integer) IndexOf(const S: String): Integer Insert(Index: Integer; const S: String) Move(CurIndex, NewIndex: Integer) LoadFromFile(const FileName: String) S a v e ToFile(const FileName: String) 2. TCanvas类
C a n v a s属性(其类型是T C a n v a s )提供给窗口控件用于绘制控件的界面。T C a n v a s封装了一个窗口的设
第2 0章V C L元素和运行期类型信息
下载
备环境(device context)。它提供了许多绘制窗口界面所需的函数和对象。第8章详细介绍了T C a n v a s类。
20.5 运行期类型信息
第2章曾提到过运行期类型信息RT T I。本章将更深入研究RT T I内部结构,增强你对RT T
I的了解。
换句话说,就是学习如何获取有关对象和数据的类型信息,其方法与Delphi IDE获取同样信息的方法
非常相似。
那么RT T I是如何表现自己的呢,你将发现, RT T I至少在两个地方对你有用。第一个地方是D e l p h i
的I D E,这在前面已提到过。通过RT T I,I D E就会知道你正在使用的对象和组件的任何事情(见O b j e c t
I n s p e c t o r )。实际上,不只是RT T I,但为了这个讨论,我们只谈RT T I方面。第二个地方是你写的运行
代码。在第2章你已经学习了i s和a s运算符。
让我们通过i s运算符来举例说明RT T I的典型应用。
假设你要把给定窗体的所有T E d i t组件变成只读。这很简单,只要遍历所有组件,用i s运算符判断
组件是不是T E d i t类,然后相应地设定R e a d O n l y属性。请看下例: a s运算符的典型应用是对一个事件处理过程的S e n d e r参数进行操作,该处理过程与几个不同的组
件有关。假设你知道所有的组件都是由一个公共祖先派生的,而你想访问其属性,应当用a s运算符把
S e n d e r安全地转换为想要的派生类,这样,就可以访问属性了。请看下例: 上述代码间接使用了RT T I信息。现在我们来看看直接使用RT T I的问题。 假设你的窗体上有与数据有关的组件也有与数据无关的组件,但是你只对与数据有关的组件进行
操作。当然,你可以遍历窗体的组件数组,搜索每一个与数据有关的组件。不过,这很麻烦,因为你
需要和每一个与数据有关的组件类型进行比较。而且,你没有一个基本类去比较。例如,要有
T D a t a Aw a r e C o n t r o l就好了,但它并不存在。
要测试一个组件是否与数据有关,较好的方法是测试它是否有D a t a S o u r c e属性。但这样,你必须
直接使用RT T I。
下面将深入讨论RT T I并给出解决问题所需要的背景知识。
20.5.1 TypInfo.pas单元:定义运行类型信息
任何一个对象(一个TO b j e c t派生类)都有类型信息。这个信息存在于内存, I D E和运行时库都可以
进行查询。Ty p I n f o . p a s单元定义了查询类型信息的结构。表2 0 - 5列出了TO b j e c t的一些方法,在第2章
已经介绍过了。
数函
本文档为【从列表中删除所有字符】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑,
图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。