登陆注册
36209800000016

第16章 常用组件(1)

本章要点

组件的基本概念

常用组件的属性、事件和方法

常用组件的使用

6.1Delphi的组件

Delphi是一个完全集成化的、面向对象的可视化编程环境。可视化控件库(VCL)是它的核心。而Delphi开发环境中的组件是VCL中Tcomponent类的派生类。

组件是Delphi开发Windows应用程序的基本单元。选择组件并定义这些组件的相互作用,是Delphi程序员设计程序的最大量的工作。

提供丰富的组件是Delphi的一大特点。熟练使用这些组件,可以大大提高应用程序的开发效率。

Delphi的组件分为可视组件(也称控件)和非可视组件两大类。可视组件在窗体上有位置和大小,运行时在窗口中显示的位置和设计时在窗体中的位置是一样的。非可视组件在设计时以图标形式显示在窗体上,而在运行时就看不到。

Delphi的可视组件又分为窗口组件和非窗口组件。窗口组件是指在运行时可以被激活的组件,如按钮、编辑框等,而且可以用Tab键对被激活的对象进行切换。非窗口组件是指在运行时不能被激活的组件,如标签、成组框等。

在Delphi集成开发环境中,组件被组织在组件模板中,按功能分别放在不同的选项卡下。

与Delphi以前的版本比较,Delphi6增加了一些新的组件,而且对组件进行了更为科学的分类和组织。特别是为适应新技术的需要,增加或加强了因特网、多媒体、数据库和ActiveX等方面的组件。

另外,随着Delphi的应用日益广泛,一些软件开发者开发了很多第三方组件,极大地方便了Delphi应用程序的开发。

在介绍中,前面组件介绍过的属性,后面组件的类似属性就不再介绍。

6.2标签

标签(Label)组件位于组件模板的【Standard】选项卡上,其图标为。

标签组件是典型的非窗口可视组件,是用来显示文本的主要组件之一,也是Windows应用程序窗口中最常用的组件之一。窗口设计中,利用标签组件的“Caption(标题)”属性来显示用户不能改变的文字或给一些没有标题属性的组件(如编辑框等)充当标题,如图6-1所示。其中右边3个组件为编辑框,其左边用3个标签组件标明这些编辑框的作用,分别用来输入姓名、性别和年龄。

6.2.1标签的属性

下面是一些常用的标签属性。

1.Align属性

Align属性决定标签与容器组件的对齐方式。该属性为枚举型属性,有7种取值,其属性值及其含义如表6-1所示。

2.Alignment属性

Alignment属性决定标签显示的文本的对齐方式。该属性为枚举型属性,有3种取值,其属性值及其含义如表6-2所示。

3.AutoSize属性

AutoSize属性决定标签组件是否可以自动调整大小,以适应Caption属性中文字的大小。

该属性为布尔型,若属性值为True,则可以自动调整,其默认值为True。

4.Caption属性

Caption属性是标签组件最重要的属性之一,指定标签显示的文本内容。该属性为直接输入型,其默认值为标签默认的名字,如Label1、Label2等。

5.Color属性

Color属性决定标签背景的颜色。该属性为枚举型属性,共列出了42种可供选择的颜色。

设置标签的Color属性要考虑其ParentColor属性,若ParentColor属性值为True,则修改标签的父(容器)组件的Color属性将会自动修改标签的Color属性;而当单独设置标签的Color属性时,其ParentColor属性值自动设置为False。

6.Font属性

Font属性决定标签显示文本的字体和大小。该属性同窗体的Font属性一样,既是编辑型,也是集合型属性;既可以通过对话框设置,也可以通过其子属性设置。

7.WordWarp属性

WordWarp属性决定标签中的文本是否可以换行。该属性为布尔型属性,若属性值为True,则可以换行,其默认值为False。

该属性用于标签要显示的文本较长并需要换行的情况。

8.Transparent属性

Transparent属性决定标签是否透明。该属性为布尔型属性,其默认值为False。

6.2.2标签组件的使用举例

例6-1一个使用标签的简单程序

(1)启动Delphi,系统自动创建一个新项目的窗体,如图6-2所示。

(2)设置窗体的属性。为简单起见,这里只设置窗体的Caption属性,设取值为“标签的使用举例”。

(3)添加组件。这里添加一个标签和一个按钮,如图6-3所示。

(4)设置组件的属性。组件的属性值如表6-3所示。

这里,标签和按钮的Name属性都取默认值Label1和Button1。设置了组件属性的窗体如图6-4所示。

(5)添加按钮组件的事件及处理代码。假设,要求程序运行后,单击按钮,标签显示“欢迎进入Delphi世界!”。在窗体上,激活按钮组件,在对象检查器中打开事件选项卡,找到【OnClick】事件,双击其右边的空白处,激活代码编辑窗口,在事件处理过程中输入需要的处理代码“Label1.Caption:=‘欢迎进入Delphi世界!’;”,即标签的Caption属性值由静态时的“标签组件的使用”变为“欢迎进入Delphi世界!”,代码编辑窗口如图6-5所示。

(6)保存单元文件Unit1.pas和项目文件Project1.dpr。

(7)运行程序,单击【欢迎】按钮,屏幕显示运行窗口如图6-6所示。

6.3编辑框

编辑框(Edit)又称文本框,位于组件模板的【Standard】选项卡上,其图标为。

编辑框是典型的窗口型可视组件,既可以用来输入文本,也可以用来显示文本,是Delphi应用程序设计中最常用的组件之一。但应注意,编辑框只能输入单行文本。图6-1中右边3个组件即为编辑框。

6.3.1编辑框的属性

1.BorderStyle属性

BorderStyle属性决定编辑框的边框形式。该属性为枚举型属性,有两种取值:

bsStingle编辑框有立体的边框,默认属性值;bsNone编辑框没有可见边框。

2.MaxLength属性

MaxLength属性决定编辑框可以接受的最多字符数。该属性为直接输入型属性,其默认值为0,表示可接受的最大文本长度为64KB。

3.PasswordChar属性

PasswordChar属性指定用来代替输入文本的字符。该属性为直接输入型属性,用于不便直接显示用户输入文本的情况,如当用编辑框输入口令时,可以指定显示某个字符(如通常用字符“”),代替用户实际输入的口令,以免别人看到。

该属性的默认值为,直接显示实际输入的文本,即用做通常的文本输入;若设置为其他值,则显示设置值代替实际输入的文本。

4.ReadOnly属性

ReadOnly属性决定编辑框是否为只读,即是否允许修改编辑框中的内容。该属性为布尔型属性,其默认值为False,不只读,即允许修改编辑框中的内容,这时编辑框既可用于输入文本,又可用于显示文本;而当属性值为True时,只读,即不允许修改编辑框中的内容,这时编辑框只用于显示文本。

5.Text属性

Text属性指定编辑框中的文本。该属性为字符串类型的直接输入型属性。

编辑框若用于显示文本,则在设计时将该属性值设定为要显示的文本或在程序运行中将该属性值赋值为要显示的文本,语法格式为:Edit1.Text:=‘显示的文本’;若用于输入文本,则在设计时将该属性值设定为空。

6.3.2编辑框的主要事件

OnChange事件:编辑框中的文本发生变化时,触发该事件。

6.3.3编辑框的主要方法

Clear方法:该方法清除编辑框的内容。

使用该方法的语法格式为:

Edit1.Clear;

6.4存储框(Memo)

如上所说,编辑框只能输入单行文本。若要输入多行文本,则要用存储框。存储框通常直接称“Memo”。

Memo位于组件模板的【Standard】选项卡上,其图标为。

Memo是典型的窗口型可视组件,既可以用来输入多行文本,也可以用来显示多行文本。

6.4.1Memo的主要属性

Memo的有些属性同编辑框类似。这里只介绍Memo的一些特殊属性。

1.Lines属性

Lines属性指定Memo中多行文本的内容。该属性为编辑型属性,默认文本为Memo1。

若要在设计时设定Memo的Lines属性,单击该属性的属性值栏右端的【…】按钮,打开如图6-7所示的【StringListEditor】对话框,由图也可看到,默认的文本是“Memo1”,可将它删除,然后输入需要的文本行。

若要在运行时在程序界面输入,则同编辑框一样,直接输入即可,若需换行按Enter键。

若要在运行时在程序代码中增加、插入、删除文本行,要用Memo的方法,将在后面介绍。

若要读取Memo的多行文本,需要指定文本行的行号,行号从0开始,如第1行为Memo1.Lines,第2行为Memo1.Lines[1],等等。Edit1.Text:=Memo1.Lines[1],即将Memo1的第2行文本赋给Edit1。

2.ScrollBars属性

ScrollBars属性决定Memo是否要加滚动条。该属性为枚举型属性,有4种取值,属性值及其含义如表6-4所示。其默认值是“ssNone”。

3.WantReturns属性

WantReturns属性决定Enter键是确认按钮还是Memo文本行换行。

即假设窗体上有一个按钮,且按钮的Default属性设置为True,当按下Enter键时,相当于单击按钮;而若窗体上同时有一个Memo组件,输入文本需换行时也要按Enter键,那么如何区分Enter键究竟是确认按钮还是Memo文本输入换行,这要靠设置Memo的WantReturns属性来解决。

该属性为布尔型属性,若属性值为True,则按下Enter键就是Memo文本输入换行;而若为False,则按下Enter键相当于单击按钮,这时Memo文本输入换行用Ctrl+Enter键。其默认值为True。

4.WantTabs属性

WantTabs属性决定按下Tab键是切换窗口焦点还是在Memo文本输入中移动光标。该属性为布尔型属性,若属性值为True,则按下Tab键是在Memo文本输入中移动光标;若为False,则按下Tab键是切换窗口焦点,这时要在Memo文本输入中移动光标用Ctrl+Tab键。其默认值为False。

5.WordWrap属性

WordWrap属性决定Memo文本输入时是否自动换行。该属性为布尔型属性,若属性值为True,则Memo文本输入时遇到Memo边框自动换行,滚动条不起作用;若为False,则不能自动换行。

6.4.2Memo的主要方法

Memo的方法主要用来对Memo中的文本行进行处理。

1.Add方法

Add方法用来在Memo文本的最后增加一个新的文本行。

如Memo1.Lines.Add(‘ANewLines.’);

圆括号内用单引号括起来的字符串为要增加的文本行。

2.Insert方法

Insert方法用来在Memo文本的指定位置插入一个文本行。

如Memo1.Lines.Insert(2,‘ANewLines’);在第3行(行号从0排起,行号为2,实际是第3行)的前面插入一个新的文本行ANewLines。

3.Move方法

Move方法用来将Memo的一个文本行从一个位置移动到另一个位置。

如Memo1.Lines.Move(2,1);将Memo的第3行文本移动到第2行的前面。

4.Delete方法

Delete方法将Memo指定的文本行删除。

如Memo1.Lines.Delete(2);Memo1的第3行文本删除掉。

6.5按钮

同类推荐
  • 如何操作电脑

    如何操作电脑

    信息社会是科技、文化发展,知识爆炸的结果。不懂得计算机,将处于半文盲的境地。因此,对于计算机,不仅要作为工具使用,已经是一项文化普及的要求。我们不仅要会使用计算机做一些诸如文字处理等具体工作,更要培养一种计算机意识。
  • 计算机应用基础案例教程

    计算机应用基础案例教程

    本书是根据教育部对高等院校计算机公共基础课程的基本要求,结合计算机技术的最新发展及高职高专类院校计算机基础课程改革的最新动向编写而成。其主要内容包括计算机基础知识、WindowsXP操作系统、Word2003文字处理软件、Excel2003电子表格软件、PowerPoint2003演示文稿制作软件、计算机网络与安全及常用工具软件的使用。本书将理论知识与项目实践相结合,既对理论有较为系统全面的讲解,又通过案例突出了操作技能的培养。本书内容新颖,体系结构合理,可作为高职高专学校、成人高等学校的计算机公共基础课教材,也可以作为广大计算机爱好者的自学参考书。
  • EDA技术

    EDA技术

    根据课堂教学和实验操作的要求,以提高实际工程设计能力为目的,深入浅出地对EDA技术相关知识作了系统和完整的介绍,相关知识作了系统和完整的介绍。
  • 中国网络传播研究2009(第三辑)

    中国网络传播研究2009(第三辑)

    本文以传统社区研究的“场域论”为基础,探讨网络传播中场域性互动对社会舆论的影响。文章首先从传统社区传播的场域性特征出发,探讨网络传播的社区性和场域性。然后分别分析了传统门户、BBS论坛和私人博客等三种主流的网络传播的场域性互动、意见表达和舆论形成的特点。最后结合“张殊凡事件”、“王石捐款”事件以及“黑砖窑”事件,探讨网络传播中的场域性互动对社会舆论从虚拟到现实的影响。
  • 下一代互联网

    下一代互联网

    本书系统介绍了下一代互联网的进展情况,包括下一代互联网的概念解析,国内外下一代互联网的最新发展情况,下一代互联网的关键技术进展,以及各国发展下一代互联网的政策计划。最后分析了下一代互联网对未来社会的影响,提出我国发展下一代互联网的政策建议等。全书共6章,包括互联网发展历史和现状,下一代互联网基本概念,下一代互联网研究最新进展,下一代互联网发展现状,我国发展下一代互联网现状,发展下一代互联网战略建议。
热门推荐
  • 异语图录

    异语图录

    白玉无瑕,其清带影。泽而淡然,醴后生津。光彩流曲,异语纷庭。明净如是,芳华不声。
  • 红玉倾城

    红玉倾城

    曾经,她是一个天真睿智的少女。她如梦以偿地与自己的真命天子在一起。但是,好朋友的逝去,他的冷落都让她凉了心。或许,我们注定此生无缘。落花有意又如何,流水照样不会有情。指点天下是你的职责,而守住这一份感情,是我的对你最真挚的守望,最纯洁的初心。年年花落,岁岁花开,唯有我的一颗真心在满地残花中落尘,埋入心底。。。。。。
  • 对不起,错爱你

    对不起,错爱你

    16岁那年,她又遇见了他。她为他付出了太多,可换来的还是他离去的背影。她在雪地里呢喃:”对不起,是我错爱你。“
  • 李银河说爱情

    李银河说爱情

    四十堂关于爱情的必修课,社会学家、学者李银河为你讲透爱情、婚姻与性的本质。本书是李银河四十年来婚姻、家庭与性研究领域的集大成之作,是作者对毕生的研究积累和感悟做的一次系统的总结。书中透彻地探讨了爱情与性、择偶标准、婚外情、性少数群体、生育观念、性教育、女性独立等话题。从柏拉图之恋到更加多元化的性取向,从个人愿望与习俗规范之间的冲突,到感情的流动性和婚姻的固定性之间的紧张关系,作者通过讲述中外婚姻制度、爱情观念、性观念变迁的来龙去脉和变化趋势,一窥世界上不同文化的情爱方式,拓宽了看待两性关系的视野,并且对于当今中国人所面临的婚姻、爱情与性的现实困境,以及相关的社会热点问题,做了极为详细的观察和解读。这里没有艰涩的学术理论,这里有很多有趣的个案,以及作者传奇的爱情经历,帮助你破解现实中的困惑,更透彻地了解爱情和两性问题,走出认识误区,突破人生格局,获得更加幸福的人生。
  • 天行

    天行

    号称“北辰骑神”的天才玩家以自创的“牧马冲锋流”战术击败了国服第一弓手北冥雪,被誉为天纵战榜第一骑士的他,却受到小人排挤,最终离开了效力已久的银狐俱乐部。是沉沦,还是再次崛起?恰逢其时,月恒集团第四款游戏“天行”正式上线,虚拟世界再起风云!
  • 叶不归秋的踪迹

    叶不归秋的踪迹

    美丽的仙子,独自生活在云端,喜欢拨弄天池水,一道道彩虹悬挂在天际弯若桥。起初只是嬉笑,久久寂寥之中,这甘霖滋润了大地,在沟壑之中形成了河流,一片片青草绿悠悠感染了凹凸的山丘。仙子拨开云层,天灯的光撒向混沌初开的人间。....
  • 龙神带你闯天下

    龙神带你闯天下

    修七境练九变意六魂成九诀。南程带上青梅竹马秦敏踏上寻母之路。
  • 死神缉凶

    死神缉凶

    周石是一个普通人,却有一种不寻常的能力。她是一个死神,可以吸收或者模仿所接触的异能人的能力;但是,她又不是一个合格的死神,她只伤害那些危害人类的异能人。死神的身份、复杂的家庭、即将面对的婚姻爱情、神秘的古董杂货店老板给她带来巨大的压力。本文以周石的生活轨迹为线索,揭示出一个个案件背后的灵异事件。
  • 三年之期一场梦

    三年之期一场梦

    多雨之夏,正值酷暑。林婉和王庭西建立了一个三年之约。他答应她三年之后他一定会回来找她,可她...
  • 梦了三国

    梦了三国

    典韦、赵云、黄忠、关羽、张飞、许褚是必须跟着我混的,徐晃、张辽、张郃,高览,潘凤,高顺也是一个不会放过,戏志才,程昱、田丰,郭嘉,沮授,几个智囊够不够,我想要不要在收个贾诩,当然太史慈和甘宁应不应该放过,穿越就是拿来玩的,开心就好