登陆注册
16017000000015

第15章 窗体组件与窗体的设计(2)

编辑组件包括调整组件的大小和位置、对齐组件,以及对组件进行删除、复制、剪切和粘贴等操作。而要进行这些操作,首先要选中要操作的组件。

1.选中组件

选中组件分单个组件和多个组件两种情况。

1)选中单个组件

如果要选中的单个组件没有被其他组件覆盖,只需单击选定的组件,这时该组件被激活,可以对该组件进行编辑了;如果要选中的单个组件被另一组件完全覆盖了,要右击覆盖它的那个组件,在弹出的快捷菜单中执行【SendToBack】命令,则选定的组件会显示在表层,再用如上方法激活该组件。

2)选中多个组件

选中多个组件有两种方法:

按住鼠标左键,拖动鼠标,这时会显示一个虚线矩形框,继续拖动鼠标,将要选中的多个组件包围在矩形框中,松开鼠标左键,被选中的多个组件的边框出现4个灰色小方块,表示这些组件被选中;按住Shift键,然后用鼠标左键一个一个单击要选中的组件,被选中组件的边框也会出现4个灰色的小方块。

2.改变组件大小

首先激活要改变大小的组件,然后将鼠标指针移到组件边框的黑色小方块上,鼠标指针变成双向箭头,按住鼠标左键,上下、左右拖动鼠标,则组件就会按鼠标拖动的方向改变其大小。

3.改变组件位置

首先选中要改变位置的组件,然后将鼠标指针移到组件的中间部位,按住鼠标左键,拖动鼠标,则组件就会随鼠标在窗体内移动,拖动到预定位置后放开鼠标左键。

4.对齐多个组件

为使组件排列整齐、美观,有时需要将多个组件按横向或纵向对齐。对齐组件的操作步骤如下。

(1)按如上方法选中要对齐的多个组件。

(2)进行如下操作之一,打开【Alignment】对话框,如图5-6所示。

执行【Edit】→【Align】菜单命令。

将鼠标移到被选中的任一组件中,单击鼠标右键,在弹出的快捷菜单中执行【Psition】→【Align】菜单命令。

(3)根据组件排列的需要,可在【Horizontal】(水平)选项组中选择【Leftsides】(左对齐)、【Centers】(居中对齐)、【Rightsides】(右对齐)、【Spaceequally】(水平均匀分布)、【Centerinwindow】(组件在窗口横向居中)单选按钮,或在【Vertical】(垂直)选项组中选择【Tops】(顶端对齐)、【Centers】(居中对齐)、【Bottoms】(底端对齐)、【Spaceequally】(垂直均匀分布)、【Centerinwindow】(组件在窗口纵向居中)单选按钮。

(4)单击【OK】按钮,组件按要求对齐。

5.删除组件

要删除一个或几个组件,首先选中要删除的组件,然后按键盘上的【Delete】键,则选中的组件被删除。

6.复制、剪切、粘贴组件

要复制或剪切一个或几个组件,首先选中要复制或剪切的组件,执行【Edit】→【Copy】

或【Cut】菜单命令,然后再执行【Edit】→【Paste】菜单命令,则选中的组件被复制或剪切到原组件相邻位置。

7.锁定组件

窗体设计好之后,为了确保窗体中各组件的位置因不小心而变动,可将组件锁定。

锁定组件,首先选中要锁定的组件,然后执行【Edit】→【LockControls】菜单命令。

组件被锁定后,其位置和大小就不再能改变,除非解除锁定。解除锁定同锁定组件的方法一样。

5.5.5设定窗体上控件的Tab顺序

如前所述,控件是指可视组件。

控件的Tab顺序是指用键盘上的【Tab】键切换当前活动控件时所遵循的顺序,如图5-5所示窗体上控件的Tab顺序为【Button1】、【Button2】、【Edit1】、【Edit2】、【Edit3】,即程序启动后,【Button1】首先被激活,按【Tab】键,【Button2】被激活,再按【Tab】键,【Edit1】

被激活,……依次类推。

窗体上控件的Tab顺序由控件的【TabOrder】属性决定,如上例控件【Button1】的【TabOrder】的属性值为0,控件【Button2】的【TabOrder】的属性值为1等。窗体上控件默认的Tab顺序为控件在窗体上创建的顺序。

根据需要,可以改变控件默认的Tab顺序。设定控件Tab顺序的方法有以下两种。

选中要设定Tab顺序的控件,按需要设定它的【TabOrder】属性值,这种方法只能一个控件一个控件地设定。

在当前窗体中执行【Edit】→【TabOrder】菜单命令,打开如图5-7所示【EditTabOrder】对话框。对话框列出了窗体上全部控件当前的Tab顺序。要设定控件的Tab顺序,首先选择组件,然后用上下箭头按钮调整其顺序,调整好后单击【OK】按钮,完成组件Tab顺序的设定。

5.5.6设定窗体上组件的Create顺序

组件的Create顺序,含义同组件的Tab顺序类似,只是Create顺序是对不可视组件而言。组件的默认Create顺序为组件在窗体上创建的顺序。

执行【Edit】→【CreationOrder】菜单命令,打开如图5-8所示的【CreationOrder】

对话框。同设定Tab顺序类似,通过对话框也可以重新设定组件的Create顺序。

5.5.7保存窗体

经过以上步骤,窗体的设计就完成了。执行【File】→【SaveAll】菜单命令,就可以把这些设计的信息保存起来。生成的Unit1.pas和Unit1.dfm文件,特别是Unit1.dfm文件记录了窗体设计的有关信息。

5.6使用窗体模板生成窗体

5.6.1使用系统提供的窗体模板生成窗体

为了使用户快捷地设计出规范的窗体,Delphi提供了窗体模板。对于类似于窗体模板的窗体的设计,用户可使用窗体模板生成窗体框架,然后根据自己的需要做必要的修改,这可以减轻设计的工作量,加快窗体的设计。

使用窗体模板生成窗体的步骤如下。

(1)执行【File】→【New】→【Other】菜单命令,或单击工具栏中的【New】按钮,打开如图5-9所示的【NewItems】对话框。

(2)选择对话框的【Forms】选项卡,如图5-10所示。

(3)根据需要,选中对话框下方的【Copy】、【Inherit】和【Use】三个单选按钮之一,选择使用模板生成窗体的方式。

【Copy】复制方式:Delphi将把窗体模板的窗体文件(.dfm)和单元文件(.pas)文件复制一份,并以默认的文件名Formn.dfm和Unitn.pas命名文件(n为数字1,2,3,…)。

【Inherit】继承方式:Delphi将以窗体模板定义的类为基类,派生出一个新的窗体类,并把派生窗体的.dfm文件和.pas文件以默认的文件名加入到项目中。

【Use】使用方式:Delphi将在项目文件(.dpr)的Uses语句中声明窗体模板的单元文件,这样这个窗体文件并没有复制到项目中,但是编译项目时,Delphi将根据项目文件的声明将窗体模板的文件一起编译连接。

在这种情况下,不要修改窗体和单元文件,因为这时修改的是模板,而不是模板的复制。

(4)选择对话框中列出的窗体模板的样式。

对话框列出了6种样式的窗体模板,具体如下。

Aboutbox模板:标准的关于对话框,如图5-11所示。

Duallistbox模板:有两个列表框的对话框,如图5-12所示。

QuickReportLabels模板:基于QuickReport组件的普通报表窗体,如图5-13所示。

QuickReportList模板:基于QuickReport组件的列表型报表窗体,如图5-14所示。

QuickReportMaster/Detail模板:带有两个表(分别称为Master--主表、Detail--明细表)的报表窗体,如图5-15所示。

Tabbedpages模板:多页窗体,如图5-16所示。

用户可以根据自己的需要,选择合适的窗体模板作为设计的基础,加以必要的修改,设计自己的窗体,以减少设计的工作量。

5.6.2创建新的窗体模板

用户除了可以使用系统提供的窗体模板生成窗体外,也可以把自己设计的窗体作为模板,保存在系统的窗体模板中,以方便今后的设计。其步骤如下。

(1)按要求设计一个窗体。

(2)右击窗体,在弹出的快捷菜单中执行【AddRepository】菜单命令,打开【AddtoRepository】对话框,如图5-17所示。

(3)在【Title】编辑框中输入窗体模板的名称;在【Description】编辑框中输入对窗体模板的描述;在【Page】编辑框中输入“Forms”;在【Author】编辑框中输入作者的姓名;单击【Browse】按钮,选择窗体模板的图标;然后单击【OK】按钮,保存新建窗体模板。

这样,再打开【NewItems】对话框的【Forms】选项卡时,就会发现用户新建的窗体模板。

5.7多窗体的设计

多窗体程序,就是一个应用程序中有多个窗体,这是程序设计中经常用到的。

5.7.1在项目中添加新的窗体

设计多窗体程序,首先要在一个存在的项目中添加新的窗体。

一个只有一个窗体的项目中,执行菜单栏中的【Project】→【ViewSource】菜单命令,可以看到项目文件代码为:

执行【Project】→【Options】菜单命令,打开如图5-18所示的【ProjectOptions】对话框。

由代码和对话框都可以看到,这时项目包含一个窗体。

执行【File】→【New】→【Form】菜单命令,则一个新的窗体Form2添加到项目中,这时项目文件代码变为:

而【ProjectOptions】对话框则变为如图5-19所示。

由代码和对话框都可以看到,这时项目就包含了两个窗体。

用同样的方法,可以建立应用程序的更多个窗体。

5.7.2确定主窗体

在多窗体应用程序中,程序开始运行时只能自动显示一个窗体,这就是主窗体,默认的主窗体是第一个建立的窗体,即Form1,在图5-19所示的【ProjectOptions】对话框的【Mainform】下拉列表框中显示的就是Form1。

用户可以更换主窗体,在图5-19所示的【ProjectOptions】对话框中,单击【Mainform】

下拉列表框右端的下拉箭头,从窗体列表中选择用户需要的主窗体,然后单击【OK】按钮,再运行程序时,自动显示的就是用户新选择的主窗体了。

5.7.3其他窗体的显示

如上所述,多窗体应用程序开始运行时,只能自动显示主窗体。而其他窗体的显示,只能由控制该窗体显示的单元文件的代码控制。

假设程序由Form1和Form2组成,Form1是主窗体,Form2由Form1控制显示,即Form1用到了Form2,则首先应在Form1的单元文件Unit1中关键字implementation后加入:

其次,要在Unit1的控制显示Form2的事件处理代码中,加入相应的显示Form2的代码:

依此类推,多窗体程序的其他窗体也可以正常显示了。

习题5

1.窗口和窗体有什么不同?

2.窗体的主要属性有哪些?

3.如何使用窗体模板生成窗体?

4.设计多窗体应用程序的要点是什么?

5.设计一个实现如下功能的小程序:

有一个主窗口,有一个按钮,按钮的标题为“创建新窗口”。单击按钮,创建一个新的窗口,且在创建时用其上的标签组件显示“一个新窗口建立了”(提示:显示功能由新窗体的建立事件OnCreate处理过程实现)。

同类推荐
  • 多媒体技术

    多媒体技术

    多媒体技术多媒体技术多媒体技术多媒体技术多媒体技术多媒体技术多媒体技术多媒体技术多媒体技术多媒体技术多媒体技术
  • 办公软件高级应用

    办公软件高级应用

    日新月异的信息技术使计算机的应用渗透到各行各业,融入到我们的工作、学习和生活中,特别是在办公领域中运用计算机技术,可以实现办公自动化,成倍地提高工作效率。在众多的办公软件中,微软公司的Office系列软件是办公自动化软件中的佼佼者,其强大的功能深受全世界广大用户的青睐。根据当前业界的需求以及办公软件的实际应用范围,本书针对Office2003系列产品,深入讲解其高级应用知识和操作技能。
  • 中文版3dsMax2010实例与操作

    中文版3dsMax2010实例与操作

    本书结合3dsMax2010的实际用途,按照系统、实用、易学、易用的原则,通过大量案例介绍了3dsMax2010的各项功能,内容涵盖3dsMax入门、创建和编辑二维图形、创建基本三维模型、使用修改器、网格建模、多边形建模、面片建模、复合建模、材质和贴图、灯光和摄影机、渲染、动画制作、粒子系统、空间扭曲和动力学等。
  • 中国移动智能手机的秘密

    中国移动智能手机的秘密

    《中国移动智能手机的秘密》是一本关于移动终端和移动互联网的科普书。作者将这18年通信行业中的学习、思考、实践积累成《中国移动智能手机的秘密》与大家分享。书本系统总结了手机的发展历史、TD产业界“从2G向3G演进”的移动终端产业分化重组进程、智能手机的使用方法用方法和应用指南,以及对移动互联网发展独特思考。
  • 微软360度

    微软360度

    本书是由微软总部华人协会组织编写的第二本书,是《微软360度——企业和文件》一书的姐妹篇,本书将着重向你呈现微软总部的华人专家是如何一步一步地走向成功的及在微软总部成功的心路历程,以及如何应对挑战,揭示了微软成功的最重要秘密之一——人才至上,读者读后收获更多的是这些成功人士的成功经验,从而为自己的成功做出更好的规划。就让我们一起通过此书来看看微软公司人才至上管理的方方面面,聆听微软的心声,感觉微软的脉动吧。
热门推荐
  • 真神时空

    真神时空

    鸿蒙初辟,混沌兹清,真神创世,亘古至今。创世大陆,这里是所有神族的发源之地。神,乃掌控法则之人。神有大能,搬山移海,焚天灭地,一念之间天地动,瞬息万里至神通。破镜大陆,中古时期,这里曾经无尽繁华,人口亿万,有上古神族开荒于此,建立家园。某日,远古魔神踏破虚空而来,带领无尽魔神大军侵入神族世界。神族带领人类奋起反抗,双方各自付出惨重代价,破镜大陆终被魔神大军占领。从此,世界进入神魔时代,神族与魔族斗争万年。神衍大陆,神魔时代才开辟出来的一片大陆,有九大神族在此建立家园。少年来自神衍大陆,横空出世,踏平重重磨难,扫荡神魔,建立理想中的完美世界!
  • 高圆寺的坏小子

    高圆寺的坏小子

    他,一个在日本留学的中国大男孩。他逃过票、说过谎,可是他更做过将喝醉酒的大叔连人带钱送上出租车,把从京都到东京的车费补给列车员,同歧视中国人的人傲然较量的事情。无论在怎样艰难的窘境中,他始终没有欺瞒过自己的良知,自立、自强、自信地同陌生的环境和命运对话。
  • 忆念往事云烟

    忆念往事云烟

    这世界上,没有能回去的感情。就算真的回去了,你也会发现,一切已经面目全非。唯一能回去的,只是存于心底的记忆。是的,回不去了,所以,我们只能一直往前。
  • 平宋录

    平宋录

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

    我本为尘来

    有没有想过……有那么一个世界,奇大无比,无穷无尽,包容了所有。而我们就生活在这里。有没有想过……有那么一个世界,与我们的世界差异颇大?那里强者飞纷,弹指间,天地变色,众生恐惧,万物灰飞烟灭?有没有想过……有那么一群强者,凭己身之力量守护苍生,防止我们生活的世界崩塌。有没有想过……有那么一天,你会发现……其实我们身边每一个人,都是不死之身。
  • 战神联盟转世之谜

    战神联盟转世之谜

    100年前,光神联盟封印了宇宙的极端邪恶势力,100年之后,这些邪恶势力即将突破封印。然而这时,当初光神联盟的人类也陆续出现了他们的转世者···当光神联盟再次集结,就是邪恶势力突破封印之时···各位,能保证宇宙的安全吗···
  • 兄弟一起闯都市

    兄弟一起闯都市

    有人说,有人的地方就有江湖,有江湖的地方就有传说,而这个江湖都由强者来缔造。傲天,一个从小就跟随妈妈过着凄惨的生活,后来遇见好心人的帮助,改变了他的一生,也注定缔造他的光辉岁月,他的辉煌人生。一次噩耗,惊醒了他的梦,唤醒了他热血青春,谱写的他的传奇故事。当他遇见像陈煌、王钧、李国荣等一热血青年,他的命运将如何改写,他的传奇故事将如何流传。一个故事就是一个人生,一个人生就是一段故事。一个谱写真实,一个真实的谱写。
  • 蓝衣爱情进化史

    蓝衣爱情进化史

    在程颢忙完手里的活儿也围过来吃饭的时候,旁边的陈小秋包着一口饭说:“程颢,你还真是怪,以前让你帮忙做屁大点儿的事你都吝啬时间,你现在在蓝衣面前做得可真是二十四孝啊!你可看清楚了,人家蓝衣可是个女同啊!别白费心机了!”蓝衣被一粒饭呛住了,直咳不止!蓝衣心里直骂陈小秋:女同?女你妹!!蓝衣横了一眼陈小秋,继续吃饭。程颢坐在自己的位置递给蓝衣一瓶水,对陈小秋说:“关你屁事,管好你自己的事!”陈小秋又扒了一口饭进嘴里,对蓝衣说:“看见没有,蓝衣?人家程颢压根看不上你的那个心上人,他看上的是你啊!你现在根本就是瞎折腾,白费心机?”
  • 你从远方来

    你从远方来

    她,叶菩提。B大的才女。天生就是一个强者。他,魏明镜,B大最神秘的人,用着神秘的身世。他们第一次的相遇,叶菩提的一句话引起了他的关注。“恋爱中的女生,最忌讳的就是对方的隐瞒,如果你认为隐瞒可以换来幸福的话,你就错了,隐瞒的最后,痛苦的一般都只是自己。”第二次相遇,是在他纠缠自己的前女友,差点被杨家的公子打,叶菩提不忍,出手相助,就是这一次本来永不相交的平行线,出现了变化。家庭的变故,魏明镜的相陪,一切都是顺其自然,那么爱情也就那么的顺其自然了。我们的爱,没有轰轰烈烈,正因为平平淡淡,才会细水长流!
  • 时光因你而精彩

    时光因你而精彩

    顾清欢喜欢余生十年,谁也不知道。顾清欢想,谁说世界上没有纯洁的男女友谊,只要一个打死不说,一个装傻到底。顾清欢和余生就是这样,以至于他们一次一次的错过。