登陆注册
16017000000014

第14章 窗体组件与窗体的设计(1)

本章要点

窗口、窗体的基本概念

窗体组件的属性

窗体组件的事件

窗体组件的方法

窗体的设计

窗体是应用程序设计时的窗口,是各种组件的载体。因此窗体设计是应用程序设计的基础。本章介绍窗体组件的使用和窗体的设计方法。

5.1窗口、窗体和窗体组件

5.1.1窗口

窗口是屏幕上被边框围住的一部分,是Windows应用程序的用户界面。一个标准的Windows应用程序窗口如图5-1所示。

100Delphi程序设计教程

窗口最上边是标题栏,其左端是窗口的名称,右端3个按钮从左到右分别是“最小化”

按钮、“最大化”按钮和“关闭”按钮。

标题栏的下边是菜单栏,列出控制程序运行的菜单命令。

菜单栏的下边是窗口的工作区(也称用户区),放置着窗口的其他组件、显示程序运行中的信息和程序运行的结果等。

从功能上分,窗口分两大类,即通常意义上的窗口和对话框。

Windows应用程序都有一个或几个窗口,其中有一个作为主窗口,主窗口是应用程序的入口。当应用程序有多个窗口时,通过主窗口的命令,可以激活其他的窗口。

5.1.2窗体组件和窗体

窗口是用窗体组件和它所包含的其他组件设计完成的。

窗体组件是一种特殊的组件,它不包含在组件板中,启动Delphi时系统会自动启用一个新的窗体组件;应用程序要添加新的窗体,只需执行菜单命令【File】→【New】→【Form】即可启用一个新的窗体组件。窗体组件是一个容器组件,它可以包容窗口中所使用的其他组件。窗体组件同其他组件一样,也有属性、事件和方法,因此设计窗口时也要设置窗体组件的属性、事件和方法。

因此可以说,窗体是设计阶段的窗口,而窗口是运行阶段的窗体。

5.2窗体组件的属性

窗体组件的属性有很多,分别决定窗体的外观、布局、状态和其他特性。这里只能介绍窗体组件的一些重要属性。

5.2.1窗体组件的外观属性

1.Caption属性

Caption属性决定窗体标题栏的标题。该属性是直接输入型属性。需要注意的是,Caption属性不同于Name属性,Name属性是窗体组件在程序中的标识符,程序运行时并不会显示出来。

2.BorderIcons属性

BorderIcons属性决定窗体标题栏是否有系统菜单、窗体最小化按钮、窗体最大化按钮和帮助按钮。该属性是集合型属性,包含4个布尔型的子属性:biSystemMenu、biMinimize、biMaxmize和biHelp,分别决定窗体标题栏是否有系统菜单、窗体最小化按钮、窗体最大化按钮和帮助按钮,子属性值为True,则表示有,子属性值为False,则表示没有。

3.BorderStyle属性

BorderStyle属性决定能否改变窗体的大小和窗口边框的形式。该属性是枚举型属性,有6种取值。各种属性值及决定的窗体效果如表5-1所示。其默认值为bsSizeable。

bsSizeToolWin可改变大小,工具窗体边框,标题栏较窄,没有最小化、最大化按钮和系统菜单bsToolWindows不能改变大小,工具窗体边框,标题栏较窄,没有最小化、最大化按钮和系统菜单4.Color属性

Color属性决定窗体的背景颜色。该属性是枚举型属性,共有42种选择,其默认值是clBtnFace。

5.Font属性

Font属性决定窗体中组件上的文字的字体、风格、大小和颜色。该属性既是编辑型属性,也是集合型属性;既可以通过对话框编辑,也可以通过子属性设置。在对象检查器中单击Font属性值右边的【…】按钮,打开【字体】对话框,如图5-2所示。通过该对话框设定窗体中组件上的文字的字体、风格、大小和颜色。

6.FormStyle属性

FormStyle属性决定窗体的类型。该属性是枚举型属性,有4种取值:fsMDIChild、fsMDIForm、fsNormal和fsStayOnTop,分别决定窗体为子窗体、父窗体、标准窗体和顶部窗体。顶部窗体指该窗体将保存在工程中其他窗体的顶部;父窗体和子窗体用在多文档界面程序(MDI)中,将在后面有关章节中介绍。其默认值为fsNormal。

7.HorizStrollBar和VertStrollBar属性HorizStrollBar和VertStrollBar属性决定窗体水平滚动条和垂直滚动条的属性。这两个属性都是集合型属性,各包含13个子属性,其中主要有:用鼠标单击一次滚动条的箭头,滑动块移动的距离;滑动块的初始位置;滑动块的最大滑动距离及滚动条是否可见等。

5.2.2窗体组件的布局属性

1.Align属性

Align属性决定窗体在显示器屏幕上的位置。该属性是枚举型属性,有6种取值:

alBottom、alClient、alLeft、alNone、alRight和alTop,分别决定窗体显示在显示器屏幕的下部、满屏、左边、窗体的位置、右边和上部。其默认值为alNone。

2.Left、Top、Width、Height、ClientWidth和ClientHeight属性这些属性都是直接输入型属性,其中Left和Top决定窗体左上角在显示器屏幕中的位置,Left为窗体左上角的横坐标,Top为窗体左上角的纵坐标;Width和Height决定窗体的宽度和高度;ClientWidth和ClientHeight决定窗体工作区的宽度和高度。

3.Constraints属性

Constraints属性决定窗体的宽度和高度的取值范围。该属性是集合型属性,包含4个直接输入型子属性:MaxWidth、MaxHeight、MinWidth和MinHeight分别为窗体的最大宽度、最大高度、最小宽度、最小高度,默认值都为0,即不做任何限制。

5.2.3窗体组件的状态属性

1.Enabled属性

Enabled属性决定窗口是否有效。该属性为布尔型属性,当为True时窗口有效,否则窗口无效。当窗口有效时,窗口才可以被激活,即窗口才可以接受键盘或鼠标事件(有的资料称为“获得聚焦”或“获得焦点”)。其默认值为True。

2.WindowState属性

WindowState属性决定窗口的初始状态,即程序开始运行时窗口的状态。该属性为枚举型属性,有3种取值:wsNormal、wsMaxmized和wsMinimized,决定窗口的初始状态分别为正常(即设计时窗体的尺寸)、最大化和最小化状态,默认值为wsNormal。

3.ActiveControl属性

ActiveControl属性决定窗体对应的单元程序运行时,窗口中哪个组件首先被激活,即首先获得聚焦。该属性为枚举型属性,其属性值处列出当前窗体中包含的所有组件,可选择其中的一个组件首先获得聚焦。

4.AutoScroll属性

AutoScroll属性决定程序运行、而有组件未能全部显示出来时,是否自动加入滚动条到窗口上。该属性为布尔型属性,其默认值为True。

5.2.4其他属性

Name属性指定窗体在程序中的名称。该属性为直接输入型属性,默认值为Form1、Form2……

需要说明的是,Name属性是每个组件都有的属性。

5.3窗体组件的事件

窗体组件作为最常用的组件,支持几乎所有的对象事件。本节只能介绍窗体组件的主要事件。

1.OnCreate事件

当程序运行、窗口被创建时,触发OnCreate事件。因此可以在OnCreate事件处理代码中,进行一些应用程序的初始化工作,如创建对象、为一些变量赋值等。

2.OnDestroy事件

当窗口被注销时,触发OnDetroy事件。该事件处理代码用来释放程序运行时占用的系统资源。

3.OnActivate和OnDeActivate事件

当窗口被激活时,触发OnActivate事件;而当窗口由激活状态变为非激活状态时,触发OnDeActivate事件。

4.OnClick和OnDbClick事件

单击窗口空白处,触发OnClick事件;双击窗口空白处,触发OnDbClick事件。

5.OnMouseDown、OnMouseUp和OnMouseMove事件这3个事件也都是由鼠标触发的事件,OnMouseDown是按下鼠标键触发的事件,OnMouseUp是松开按下的鼠标键触发的事件,OnMouseMove是移动鼠标触发的事104Delphi程序设计教程件。

6.OnKeyPress、OnKeyDown和OnKeyUp事件

这3个事件都是由键盘触发的事件,OnKeyPress是敲击键盘某个按键触发的事件,OnKeyDown是按下键盘某个按键触发的事件,而OnKeyUp是松开键盘按下的某个按键触发的事件。

7.OnPaint事件

OnPaint事件是窗口的用户区进行刷新操作时触发的事件。

8.OnShow和OnHide事件

当窗口由隐藏状态被显示时,触发OnShow事件;而窗口由显示状态被隐藏时,触发OnHide事件。

5.4窗体组件的方法

窗体组件还有若干方法,用以控制窗体的状态。

1.Close方法

Close方法用来关闭窗口。

2.Hide方法

Hide方法用来隐藏显示的窗口。

3.Show方法

Show方法用来显示窗口。

4.ShowModal方法

ShowModal方法用来以模式对话框的方式显示窗口。关于模式对话框的概念将在第8章对话框设计中介绍。

前面介绍过,组件方法的使用非常简单,其语法格式为:

组件名.方法;

如要关闭窗体组件Form1对应的窗口,则只需:

Form1.Close;

5.5窗体的设计

窗体的设计要经过如下一些步骤。

5.5.1创建窗体

创建一个新的窗体有以下几种方法。

1)启动Delphi,系统自动为新建项目创建一个新的窗体。

2)Delphi程序设计过程中,执行【File】→【New】→【Form】菜单命令,则在当前项目中创建一个新的窗体。

3)Delphi程序设计过程中,执行【File】→【New】→【Other】菜单命令,打开如图5-3所示【NewItems】对话框,选择对话框中的【Form】选项,也可在当前项目中创建一个新的窗体。

这时新建的窗体是一个空白的窗体,如图5-4所示。

5.5.2设置窗体组件的属性

如上所述,窗体组件的属性很多,只能根据需要,设置必要的属性,其他取默认值即可。

5.5.3将需要的组件放置窗体中并设置它们的属性

用前面介绍的方法,将需要的组件放置到窗体中。

在空白窗体组件中放置了2个按钮、3个标签、3个文本框的窗体如图5-5所示。

其他组件放置好以后,就可以根据需要设置这些组件的属性。常用组件的属性后面专门介绍。

5.5.4编辑组件

同类推荐
  • 如何建设网站

    如何建设网站

    本书以问答的方式介绍了建设网站的基本知识,内容包括:网站设计的八个步骤、建设网站需要掌握的工具软件、网页中插入图像、在网页中隐藏内容等。
  • 计算机应用基础案例教程

    计算机应用基础案例教程

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

    我看电商

    本书是作者近30年从事零售及电子商务管理的总结和分享。近年来电商行业在中国迅猛发展,2012年网络零售市场规模达到13,000亿人民币,诞生了淘宝、天猫、京东、当当、凡客、唯品会……等一大批全新的网络公司,电子商务正在日益深入的影响着越来越多人的生活。如今这位自称跨界老兵的电商操盘手第一次全方位剖析电商风云,细说中美电子商务发展的不同路径,评点国内各大电商企业的是是非非,详解其中的融资、模式、运营、效率……个中经验,毫无保留的娓娓道来,笔触至深,让人不禁掩卷沉思。
  • 数字博物馆研究与实践:2009

    数字博物馆研究与实践:2009

    本书汇集了“2009年北京数字博物馆研讨会”与会代表提交的60余篇论文和演讲报告、应用案例,分为数字博物馆(科技馆)发展研究探讨、数字博物馆(科技馆)多样性发展模式、数字技术在博物馆(科技馆)展陈中的应用、数字博物馆(科技馆)建设实践、数字博物馆(科技馆)实现技术和数字博物馆调研报告等六个部分。本书内容囊括了对数字博物馆(科技馆)建设宏观层面的全局思考以及微观层面的具体实践。在宏观层面,介绍了数字博物馆(科技馆)在国内外的发展现状与趋势,通过剖析典型案例,探讨数字博物馆(科技馆)建设的意义、目标、作用、建设原则、要素、特征及目前建设工作中存在的现实问题与对策。
  • EDA技术

    EDA技术

    根据课堂教学和实验操作的要求,以提高实际工程设计能力为目的,深入浅出地对EDA技术相关知识作了系统和完整的介绍,相关知识作了系统和完整的介绍。
热门推荐
  • 金主大人,狠狠宠

    金主大人,狠狠宠

    “你很喜欢卖?”愤怒。“我就是喜欢卖,怎么了?”倔强。“反正你也要卖,就卖给我。一百万,我买你一个月。”咬牙。“先给钱,后交货!”气恼。N年以后,苏浅扶着老腰,趴在床上咬牙切齿:“麻痹!本来当初以为是一锤子买卖,没想到居然有回头客!”(宠文,宝宝,小虐怡情。)
  • 你是我夫君

    你是我夫君

    她是富家千金,聪明伶俐,一次意外她来到陌生动乱的年代,他一代抗敌名将,无奈小人陷害,志不得展,打抱不平的他见她落难,便伸出援手,两人惺惺相惜,终牵手相伴。出征不顺,小人落井下石,奉献终身,她舍命陪夫君,被敌人砍双足,割口舌。战场上,即使口不能言,腿不能行,她以马代足,以笛鸣意,胜利之时,便是她下黄泉陪伴他之日。
  • 校草为校花的华丽蜕变

    校草为校花的华丽蜕变

    冥谨慧第八部小说强势登陆!此部小说是《校草为校花的华丽蜕变》续集,讲述的将是新生力量的故事~作者觉得比第一部内容更精彩!~第二部名称《校花和校草的恋爱未央》!重要通知:不好意思各位,更新时间改变了!从4月份的第二周开始更改为每周六,周日中午12点更新!!每周更新的三章改为两章,这样我才能勉强保证不断更,敬请各位读者理解!(定时发布,望各位读者仍不离不弃,我便死更到底!)
  • 学生精品美文:一本甜的书

    学生精品美文:一本甜的书

    本书是作者金明春送给青少年读者的一份厚礼。身为一名教师,作者的字里行间都流露着对浓浓的温情。正如作者所说:这本书是甜美的,让阅读成为享受。阅读这一篇篇青春励志心灵美文,能让你的人生生动起来,能让青少年读者感悟到,阅读是快乐的,阅读是美丽的,阅读是生动的;阅读可以诗情画意,阅读可以妙趣横生,阅读可以趣味盎然。同时,透过这一篇篇心灵美文,我们可以体会到,教育,是用爱浇灌的事业;教育,是离心灵最近的工作;教师的工作,有着一种更加神圣的担当。
  • 彼得潘公主恋爱中

    彼得潘公主恋爱中

    《彼得潘公主恋爱中》是校园人气少女作家宅小花的又一力作!本书讲述了可爱迷糊的超能力少女艾玖音为了寻找突然离家出走的妈妈,与爸爸和小猫一起搬到大都市,来到蓝纪学院上学,却不小心被嗜睡症的男主梶雪斗发现自己会飞的秘密,从而发生的一系列乌龙搞笑校园爱情故事!
  • 职方外纪

    职方外纪

    本书为公版书,为不受著作权法限制的作家、艺术家及其它人士发布的作品,供广大读者阅读交流。
  • 清风予我陌上花

    清风予我陌上花

    原创短篇小说集.你要相信,总有一天,你会找到一个你喜欢他他也喜欢你的,他会好好宠你,他会给你做饭,他会带你去见他的父母,他会把你牵进礼堂,你们会有一个很可爱的孩子,你们的名字会最终会刻在一个墓碑上.
  • 江湖有点萌

    江湖有点萌

    俗话说,有人的地方就有江湖……师傅都跑了,做徒弟的怎么能不踏上寻师之路?坑蒙拐骗吃喝玩乐无所不作。遇见的帅哥正经不正经都是场缘分。遭遇的事件坑爹不坑爹都是场意外。怎么办?江湖凶险,谁知好坏如何。还是乖乖找师傅吧……
  • 大龄女废宅的进化

    大龄女废宅的进化

    一个经不起残酷现实摧残的大龄女废宅因为某些原因,需要开始进化。
  • 奇缘天降

    奇缘天降

    军营初见,奇缘天降。你是我今生的无法加开的结。