登陆注册
16017000000022

第22章 对话框的使用与设计(3)

FromPage和ToPage属性指定打印的起始页码和终止页码。这两个属性为直接输入型属性,其默认值都为0。

4)MaxPage和MinPage属性

MaxPage和MinPage属性决定能输入的最大和最小的打印页数。这两个属性为直接输入型属性,其默认值都为0。

5)Options属性

Options属性决定对话框的外观和行为。该属性为集合型属性,包含6个子属性,其值为True时的含义如表8-7所示。

6)PrintRange属性

PrintRange属性指明对话框中选定的打印范围。该属性为枚举性属性,有3种取值,分别对应对话框中的3种可能的选择:

prAllPage--打印所有页,【全部】单选按钮被选中;prPageNums--按页码打印指定页,【页码范围】单选按钮被选中(MinPage=0);prSelection--选择打印指定页,【选定范围】单选按钮被选中。

7)PrintToFile属性

PrintToFile属性决定【打印到文件】复选框是否被选中。该属性为布尔型属性,其值为True时,【打印到文件】复选框被选中,其默认值为False。

显然,要通过打印机正常打印,【打印到文件】复选框不能被选中。

PrintDialog组件没有特殊的方法与事件。

8.3.10PrinterSetupDialog(打印机设置对话框)组件

PrinterSetupDialog组件的图标为。

调用PrinterSetupDialog组件的Execute方法,打开的【打印设置】对话框如图8-17所示。

【打印设置】对话框用于选择打印机,设置打印的属性,如纸张的大小、打印的方向等。

PrinterSetupDialog组件没有需要说明的属性,它的Execute方法的使用也和其他通用对话框组件一样。

8.4对话框的设计

如前所述,对话框也是一种窗口。因此,除了使用以上两种对话框,还可以根据需要,用设计窗体的方法,自己设计对话框。

本节将分别介绍模态对话框和非模态对话框的设计。

8.4.1模态对话框的设计

显示模态对话框要调用窗体的ShowModal方法。这里通过一个实例说明模态对话框的设计步骤。

例8-1设计一个模态对话框。

(1)执行【File】→【New】→【Application】菜单命令,新建主窗体Form1。

(2)设置主窗体属性,如表8-8所示。

(6)向对话框窗体添加组件并设置属性。

添加两个复选框CheckBox组件、两个位图按钮BitBtn组件,组件属性设置如表8-11所示。

这里使用了位图按钮,它的类型由其Kind属性决定。不同类型的位图按钮,其外观不同,单击后都关闭按钮所在的窗体,而返回值不同,如BitBtn1的Kind属性为mbOK,返回mrOK,BitBtn2的Kind属性为mbCancel,返回mrCancel。

设置了窗体和组件属性的对话框窗体如图8-19所示。

(7)编写程序代码。

根据程序功能要求,单击【显示控制】按钮,显示【显示控制】模态对话框。在对话框中,通过复选框选择要显示的文本,若单击【确定】按钮,关闭对话框,返回mrOK,主窗体按选择的文本显示;若单击【取消】按钮,关闭对话框,返回mrCancel,主窗体仍显示原来的文本。

因此,单元文件Unit1的程序代码为:

主窗体调用对话框窗体,所以Unit1文件的implementation段中加usesUnit2。

为记忆原来显示的文本,定义两个变量old1、old2。

对话框为模态对话框,所以对话框的显示用ShowModal方法。

单击【显示控制】按钮,显示对话框,所以选择Button1的OnClick事件。

于是单元文件Unit1的部分代码为:

(8)保存文件Unit1、Unit2、Project1。

(9)运行程序。

单击工具栏中的【Run】按钮,显示主窗口,如图8-20所示。

单击【显示控制】按钮,打开【显示控制】对话框,如图8-21所示。

在对话框中,两个复选框都不选或只选一个复选框,单击【确定】按钮,则返回主窗口后按新选择显示文本,图8-22即为只选一个复选框的显示。

而在对话框中,无论怎样选择,单击【取消】按钮,主窗口仍显示原来的文本。

打开对话框后,如果不关闭对话框,就不能切换到主窗口去,这正是模态对话框的特点。

8.4.2非模态对话框的设计

显示非模态对话框要调用窗体的Show方法,因为Show方法是过程,所以非模态对话框没有返回值。这里也通过一个实例说明非模态对话框的设计步骤。

例8-2设计一个非模态对话框。

(1)执行【File】→【New】→【Application】菜单命令,新建主窗体Form1。

(2)设置主窗体属性,如表8-12所示。

(3)向主窗体中添加组件并设置组件属性。

添加两个标签Label组件、一个按钮Button组件,组件属性设置如表8-13所示。

(4)执行【File】→【New】→【Form】菜单命令,新建对话框窗体Form2。

(5)设置对话框窗体属性,如表8-14所示。

(7)编写程序代码。

根据程序功能要求,单击【字体样式】按钮,显示【字体样式】非模态对话框。在对话框中,通过复选框选择字体样式,“字体样式显示示例”按选择的字体样式显示,这时若单击【应用】按钮,主窗体按选择的字体样式显示;若单击【取消】按钮,主窗体仍按原来的字体样式显示。

因此,程序代码为:

主窗体调用对话框窗体,所以Unit1文件的implementation段中加usesUnit2。

对话框为非模态对话框,所以对话框的显示用Show方法。

单击【字体样式】按钮,显示对话框,所以选择Button1的OnClick事件。

于是单元文件Unit1的部分代码为:

单击【应用】按钮,主窗口文本应按对话框选择的字体样式显示,所以【应用】按钮的OnClick事件处理过程代码为:

procedureTStyleDlg.BitBtn1Click(Sender:TObject);

begin

Form1.Label1.Font.Style:=Label1.Font.Style;

Form1.Label2.Font.Style:=Label1.Font.Style;

end;

单击【取消】按钮,字体样式选择不起作用,所以不响应该按钮。

(8)保存文件Unit1、Unit2、Project1。

(9)运行程序。

单击工具栏中的【Run】按钮,显示主窗口,如图8-25所示。

单击【字体样式】按钮,打开【字体样式】对话框,如图8-26所示。

在对话框中,两个复选框都选或只选一个复选框,“字体样式显示示例”按选择的字体样式显示,对话框如图8-27所示。

这时主窗口的文本显示不受影响,只有当单击【应用】按钮时,主窗口文本才会按新选择字体样式显示,如图8-28所示。

因为对话框为非模态,所以不关闭对话框,也可以将主窗口切换为当前窗口。

习题8

1.Delphi有几种标准对话框?各如何使用?

2.在程序中如何打开Delphi对话框组件的对话框?

3.模态对话框和非模态对话框有什么区别?设计模态对话框和非模态对话框的主要不同之处在什么地方?

4.设计一个应用程序,单击其上的【登录】按钮,弹出【登录】对话框,要求输入用户的姓名、口令信息;若两项都输入了,单击对话框的【确定】按钮,对话框关闭;若只输入了一项,弹出“输入数据不全”的消息框。

同类推荐
  • 组建家庭局域网与无线网

    组建家庭局域网与无线网

    该书是“快乐驿站”丛书之一,是一本精心为初级家庭电脑用户打造的局域网与无线网组建入门与提高的图书,同时还涉及一些办公网络的组建内容。《组建家庭局域网与无线网》以局域网和无线网的功能、设置以及实际应用为导向,用生动的实例、形象的图解和幽默的语言循序渐进地介绍了局域网和无线网的概念、产品、设计、组建、调试与维护的相关内容。
  • Delphi程序设计教程

    Delphi程序设计教程

    本书为适应不同层次读者的需要,从Delphi的基本知识讲起,由浅入深,全面讲述了Delphi的集成开发环境、Delphi的编程语言——ObjectPascal、常用组件的使用、窗体的设计、菜单的设计、对话框的设计、多文档界面程序的设计、多媒体编程和数据库应用程序设计等内容。
  • 都是网络惹的祸

    都是网络惹的祸

    本书分网络游戏、网络聊天、网络隐私、网络网吧安全、网络文化、网络语言、网络犯罪、网络陷阱等栏目,从不同的视角探讨了在当今社会的网络现象。
  • 一本书读懂24种互联网思维

    一本书读懂24种互联网思维

    本书整合的改变世界的24种互联网思维,让我们对互联网新思维的认识变得立体、系统起来;同时深入浅出、通俗易懂地从技术和实践分析互联网新思维与传统思维相比较的优势,医治互联网焦虑症。未来属于既能深刻理解传统商业的本质,同时又具备互联网思维的人。
  • 一本书读懂大数据

    一本书读懂大数据

    本书是深入研究互联网思维的经典之作,从互联网思维的定义到互联网思维应用的具体案例表现。作者深入浅出、条分缕析,全面阐述互联网思维的内核与精神,逐一点评当前关于互联网思维的各种观点。本书从最初级的互联网思维应用到高端的粉丝经济,平台建设,自媒体营销的方法都有详细讲解介绍。让读者了解什么是互联网思维的同时还能学会把互联网思维运用到自己的工作学习已经生活中。
热门推荐
  • 龙珠之女赛亚人

    龙珠之女赛亚人

    我叫布萝莉,宇宙中唯一仅存的女性赛亚人,是个天生拥有一万战斗力的怪胎,发起疯来连自己都打的那种。。。。。。
  • 全人类补全计划

    全人类补全计划

    大多数人类都希望自己拥有超越自然的无上力量,而对一些异能变种人来说,做一个平凡的人类是件多么幸福的事情。
  • 碎的心

    碎的心

    虽然是男主,但是倒霉到家的,他在一次机会下被穿越而来的魔王附身,成为了绝顶聪明的天才为了爱的人不惜牺牲自己
  • 治病不如防病

    治病不如防病

    人们总是在生病之后才去治病,却很少有人想到在生病之前去防病。防病于未然,才是最正确的养生之道。本书从习惯、饮食、运动、心理四个方面出发,着重分析了某些日常生活习惯的利与弊,从习惯上防病于未然;怎样吃才最有营养、最科学,从饮食上防病于未然;怎样锻炼身体才最有效,从运动上防病于未然;怎样保持心理健康,从心理上防病于未然。本书帮助你开启健康四大防护墙:习惯、饮食、运动、心理——全面呵护自己的健康。
  • 幽冥白虎

    幽冥白虎

    无人问津的小乞丐背后隐藏着通天背景,背负着血海深仇,一人独行,只因心魔作祟,亦正亦邪,无人敢与他亲近。看他如何灭心魔,斩群敌,一人一戟杀出通天之路。
  • 异界之逆天玄尊

    异界之逆天玄尊

    异界重生,一位神秘的老者,一套玄奥的功法,造就他逆天的战力。他,携手今生的恋人,将如何面对前世的爱人,将如何找寻前世的好友。他,面对着奇境的修士、妖兽、精怪,幻境的斗者、魔法师、召唤师,将如何走向巅峰,执掌天地。仗剑飞驰,遨游天宇,寻龙探宝踏歌行,纷纷扰扰天地间。
  • 忍者外传之宿命

    忍者外传之宿命

    家族?天赋?强大的主角光环?穿越系统?不!这里没有!只有着这个世界不公平的宿命!
  • 盗墓者传奇:月夜鬼吹灯

    盗墓者传奇:月夜鬼吹灯

    春秋战国时期的楚幽王死后葬在什么地方?是安徽的寿县,还是在湖南永州的九嶷山中?而他那一座沉埋于地下的王陵之中有没有藏着传说之中富可敌国的珍宝?本书讲述的就是一个盗墓者的诡异经历。明朝末年,生于乱世的山村少年风冷情,无意之中闯入了公主坟中,巧遇盗墓门下的一代宗师水天波。其后被水天波收入盗墓门下,带回九嶷山中,苦练淘沙绝技。十年之后,水天波旧病复发。为救治水天波的伤病,风冷情带领水灵闯入了神秘恐怖的楚幽王陵之中。寻求一枚可以解救水天波伤病的千年玉髓。其间经历了九死一生。楚幽王陵之中步步杀机:一击致命的追魂夺命弩。见血封侯的毒龙枪。噬魂夺命的灯芯虫。每一步行差踏错就是灭顶之灾。最终风冷情和水灵来到楚幽王的墓室之中,而那妄求长生的楚幽王最终有没有得偿心愿?风冷情和水灵最终有没有得到那一枚千年玉髓?那传说之中富可敌国的珍宝有没有在楚幽王陵之中出现?——月夜鬼吹灯,新派盗墓奇侠小说再战江湖!
  • 鬼王追妻:驭夫悍妃

    鬼王追妻:驭夫悍妃

    21世纪的杀手代号九枭穿越到天宗大陆绝世废材的拓跋影儿身上。那个男人,折断她一身的筋骨,更是无情的强要了她,最后弃她于水中险些再次死去……“今日之辱,他日万倍讨回!!!”她咬牙切齿发毒誓。三年后携带狼王云起,外加一个拖油瓶,将这片天宗大陆弄得人心惶惶,定要将欺负过她的人,碎尸万段,挫骨扬灰……
  • 血火军旗

    血火军旗

    血与火交织的战争,个体的命运,信仰,选择都是无足轻重的,战火改变一切