登陆注册
36209800000022

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

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

    组建家庭局域网与无线网

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

    多媒体技术

    多媒体技术多媒体技术多媒体技术多媒体技术多媒体技术多媒体技术多媒体技术多媒体技术多媒体技术多媒体技术多媒体技术
  • 综合应用软件设计

    综合应用软件设计

    本书是为计算机、信息管理等相关专业高年级本科生在开设相关课程时所编写的一本教学参考书,它将全面指导学生学习、熟悉和运用当今被广泛采纳的一些主流技术去进行综合应用软件设计的有效实践。
  • 我看电商

    我看电商

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

    互联网创业前奏曲(第二部)——网站运营之人性、策略与实战

    本书是《互联网创业前奏曲》系列的第二本书,是作者多年互联网实践经验和业界观察的总结,是国内罕有的关于互联网网站运营和用户心理结合的书籍,用通俗的语言阐述互联网运营背后的人性驱动。你想互联网创业吗?你是否在为找不到好的互联网运营策略和方法而发愁?你非常想了解互联网行业?你是否在为自己不了解互联网运营而苦恼?本书针对这些问题列举了很多互联网运营的案例,帮你制定运营策略,更好的修炼和提升运营功力。
热门推荐
  • 凤涟寒漪:王爷不讨喜

    凤涟寒漪:王爷不讨喜

    呆萌呆萌的一穿,傻眼了渣爹从善,庶姐毒骂,姨娘算计——暴走反抗,巧交两同穿知己==被出卖了,还帮两二货拐了两煞笔夫君何处冒出一腹黑货“汐儿。为夫痛痛,给为夫揉揉吧。”——白眼投降从此,世上多了三对奇葩夫妇........【蠢萌蠢萌的落夕女配求收藏求包养】
  • 幽幽游戏厅

    幽幽游戏厅

    她在孤儿院长大。从小没有父母的关爱,林羽兮早就习以为常,只不过她总暗暗想着,何时才能见到那两个生下她的人。19岁生日那天,一个神秘的男人找到她。“喂,这是你爸留给你的东西,收好。”还没等反应过来,那人已经跑的不见踪影。林羽兮一头雾水,还是小心翼翼的打开了盒子,里面躺着一副隐形眼镜。真要是父亲留下来的,为什么不是亲自给我,反而找一个陌生人来呢?当她带上这副眼镜,下一秒房里传来呼喊。“为什么这玩意摘不下来了!”
  • 生死情迷

    生死情迷

    连串的绑架案藏惊天大阴谋疑雾重重铁血柔情有情人难成眷属生死两隔一起发生在副市长家的绑架勒索案揭开了于都市黑幕重重的冰山一角。铁面刑警队长与绑匪面对面生死谈判,没想到自己却陷入女刑警和女人质的情感纠葛中,难以自拔。一串扑朔迷离的案中案,一段爱和恨,血与泪的生死恋情!2800万集资款失踪,案犯在逃。刑警队长遭到暗算、副市长家被窃听,幕后黑手究竟是谁?疑云密布,危机四伏,谁才是真正的英雄?一部悬念不断、惊险万分,同时又不乏感人情感纠葛、令人扼腕叹息的都市惊险言情小说《生死情迷》,让你点开第一页就欲罢不能!
  • 热血庸医

    热血庸医

    一件隐身草衣让灭门案中的主人公幸存,机缘巧合之下他又用宝衣救下了前朝公主,看他们如何在五代十国这乱世中生存,除暴安良还是随波逐流都在年轻人一念之间。
  • 三日长过百年

    三日长过百年

    生活在黄土地上的“草根”百姓,因为一场骤然降临的巨大灾难,生命中迸发出令人惊叹的血性,义无反顾地投入抢救生命的战场。“小人物”的人生轨迹、性格命运,灾难中的生存与死亡、希望与绝望、亲情与责任,在这里展现得淋漓尽致。较之于外来大军轰轰烈烈的救灾行动,他们显得默默无闻,鲜为人知。
  • 宠妻无度之庶女毒妃

    宠妻无度之庶女毒妃

    世人都道丞相府三小姐又呆又傻,胸无半点墨,那日她替姐出嫁,半途花轿被劫,男方断言她不贞不洁!强行退婚!平安归来后她却不是她,一封休书直甩渣男门面……
  • 暗恋的那点小甜甜

    暗恋的那点小甜甜

    又名《论盒子精的一百种死法》。“吃鸡届盒子精”学姐与“新时代狙神”小学弟刺激战场,狭路相逢——我觉得我似乎完了,因为我连awm都给了她!单北杨是虎喵直播平台的百万吃鸡主播,大名鼎鼎的“新时代狙神”,盘靓条顺,枪法精准。褚悠是游戏界的菜鸟,吃鸡届的盒子精,毒圈毒死、手雷炸死、载具碾死,各种各样的死法,只有你想不到,没有她做不到。单北杨带褚悠吃鸡渐入佳境,一日两人闲聊时褚悠向他抱怨有人曾经拿平底锅拍死过她。单北杨心疼不已,心说下一次要是碰上那位兄弟一定也要让褚悠以其人之道还治其人之身。“我到现在还记得那位老弟的id,跟爸爸跳伞刚枪。”单·跟爸爸跳伞刚枪本人·北杨:……捂住,这个马甲拼死也要捂住!
  • 开启仙侠时代

    开启仙侠时代

    对华夏电影圈来说,这是最坏的时代。武侠艰难求存,仙侠不见踪影。好莱坞碾压而来,如割韭菜般轻易拿走百亿级票房。但对苏安来说,这却是最好的时代。特效技术以假乱真,成本更是低到可怕。以《仙剑》系列启幕,提振整个华夏信心;以《凡人修仙传》系列为承接,正面对刚好莱坞科幻大片,向世界宣告华夏的声音;以《完美》《遮天》系列为鼎盛,横扫全球,输出华夏文化!……后世有人这么评价:他是华夏电影的举旗人。他是仙侠时代的开启者。他是有史以来最伟大的艺术家!
  • 板桥杂记

    板桥杂记

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

    世纪塔

    我们每一个人是不是活在一场已经预先设定好的游戏里。