220 likes | 352 Views
基础综合 各种对话框的建立. 窗口接口可以说是最友善的人和计算机间的沟通接口,然而对话框就好像是计算机和使用者之间的对话通道。开档案有开档案的方式、存盘有存盘的接口、打印机设定、字型选择、寻找字符串、置换字符串等等,在 Win32 的环境中,这类的对话框实在是太多了。在这一章我们将带领大家进入设计对话框的世界。. 大纲. 6-1 Open / Save Dialog 6-2 Open / Save PictureDialog 6-3 FontDialog 6-4 ColorDialog 6-5 PrinterDialog 6-6 PrinterSetupDialog
E N D
基础综合 各种对话框的建立 窗口接口可以说是最友善的人和计算机间的沟通接口,然而对话框就好像是计算机和使用者之间的对话通道。开档案有开档案的方式、存盘有存盘的接口、打印机设定、字型选择、寻找字符串、置换字符串等等,在Win32的环境中,这类的对话框实在是太多了。在这一章我们将带领大家进入设计对话框的世界。
大纲 • 6-1 Open / Save Dialog • 6-2 Open / Save PictureDialog • 6-3 FontDialog • 6-4 ColorDialog • 6-5 PrinterDialog • 6-6 PrinterSetupDialog • 6-7 FindDialog • 6-8 ReplaceDialog • 6-9 对话讯息框的使用 • 本章习题
6-1 Open / Save Dialog • 在窗口操作系统中,当使用者需要对某个档案作开启或关闭的动作时,通常需要透过档案处理对话框来对档案作处理,所以所谓的对话框,就是应用程序和使用者之间的交谈接口;一个设计优良的对话框,会让使用者相当容易上手。下图是档案开启的对话框。
Open / Save Dialog实作 • 上图的画面是一般在窗口系统下开启档案的对话框,我们可以看到中间主画面是可选取的图示区,上方是目前目录名称以及一些目录基本功能,下方则是选取文件名称和档案格式。这些功能我们都可以用BCB所提供的OpenDialog组件一手包办实作,唯一需要我们自己设定的只有档案格式过滤以及预设的开启路径。OpenDialog组件常见的属性如下:
Open / Save Dialog实作 • 当我们建立一个OpenDialog组件时,在该组件的属性里有一个Filter项目,这是提供设定档案格式属性的过滤方式,设定该属性可以让对话框在使用时挡掉不需出现的格式的档案,其字段功用说明如下:Filter Name字段填入显示文字,而Filter字段填入档案格式,如果档案格式超过一个的话就用分号分开,一般在设定Filter时我们会加入一个显示所有档案的字段以提供对话框浏览时可以看到所有的档案。 Filter设定窗口
6-2 Open / Save PictureDialog • OpenPictureDialog组件提供了图文件预览的功能,相当适合影像处理类的软件;目前提供的预览格式有JPEG、BMP、ICO档案等图形档案格式。当然,BCB也提供了储存图文件的对话盒SavePictureDialog组件来做图文件储存。
Open / Save PictureDialog属性介绍 • 我们可以由上图看到和OpenDialog最大不同的地方,就是右边有个预览区域,可以显示目前反白的图档内容,这个预览区只有在被点选的档案是属于被支持的图档类型才有效。至于其它的部分,外观和功能都和OpenDialog差不多。OpenPictureDialog组件常见的属性如下:
6-3 FontDialog • 一个功能齐全的文书编辑软件,需要提供字型的调整功能。BCB为了方便程序开发者在设计此功能时的效率,提供了FontDialog组件,其更改字型的对话窗口可让使用者以直觉的方式来更改字型。右图为字型对话盒。 更改字型设定对话盒
FontDialog 属性介绍 • BCB有很多组件都含有Font属性,尤其是跟文字编辑相关的组件。但是字型的设定往往都是相当的繁琐,如改变字体的类别、格式、大小、颜色等等。如果是在程序执行的时候去修正改变,则对使用者而言将会是很痛苦的事情。所以FontDialog就解决了这个问题,BCB中的FontDialog组件的重要属性列表如下:
6-4 ColorDialog • 在窗口应用程序中,常常会有编辑软件可以选择图形或文字的颜色,选择颜色的方式通常是一个色彩对话框,如右图所示。BCB的所提供的色彩对话框组件是ColorDialog,我们可以指定所需改变的颜色为对话框所选取的颜色作为编辑的动作。ColorDialog最主要的属性就是Color,当开启对话框后所选择的颜色将会被设定在Color属性。 基本更改颜色设定对话盒
ColorDialog设定说明 • 在上图我们可以看到上半部是属于Basic colors的部分,这是系统提供的基本颜色,总共有56种。在一般的选色情况下,这些系统提供的基本颜色就可以了。但是我们也可以自订一些自己想要的颜色,下面还有16个Custom Colors的字段,让我们使用者可以自定颜色,而设定颜色的方式,就是依照基本色加上RGB色的调整。 自订色彩设定画面
6-5 PrinterDialog • PrinterDialog主要功用在于提供设定打印版面,即设定打印的相关参数,下图是PrinterDialog对话框的显示接口。使用者可以设定打印范围对应到PrintRange属性,打印数量对应到Copies属性,加入自动分页功能对应到Collate属性,在Options属性里又有提供很多参数可以让我们自行设定,比如说设定打印页面,是否打印到档案等等。 打印设定画面
PrinterDialog属性介绍 • 以下为PrinterDialog属性的介绍及说明: • Copies属性:型态为int,此属性为设定打印份数。 • FormPage属性:型态为int,此属性是设定打印的起始页,也就是说如果设定值为1的话,打印时会从第1页开始打印。 • ToPage属性:型态为int,此属性是设定打印的最末页,也就是说如果设定值为5的话,打印时会从起始页开始打印到第5页。 • MinPage属性:型态为int,此属性是设定打印的最小页数,当使用者输入的打印设定里如果打印页数小于该属性的值,则程序就会发出错误讯息。 • MaxPage属性:型态为int,此属性是设定打印的最大页数,和MinPage刚好相反,当使用者输入的打印设定里如果打印页数大于该属性的设定值值,则程序就会发出错误讯息。 • PrintRange属性:PrintRange属性有三种设定值:prAllPages,prPageNums,prSelection。当使用者选择Range时,程序员可以从FromPage和ToPage里读出真正要打印的范围。 • PrintToFile属性:型态为布尔变量,此属性的设定决定是否将打印的结果打印成为档案,默认值为否。 • Options属性:这是一个Set属性,该Set里又有包含很多布尔型态属性,也都是作打印的设定。
6-6 PrinterSetupDialog • PrinterSetupDialog主要是用来做打印机的设定,这包含了打印机选择、纸张格式设定、走纸方式、以及打印方向等等,下图就是一个PrintSetupDialog所显示的对话框。 打印机设定画面
6-7 FindDialog • Find是帮助使用者搜寻文件里的字符串,常见的有文书编辑软件、网页浏览器等需要显示大量文字时,这个功能就是不可或缺的了。BCB所提供的FindDialog就是帮助程序开发者在需要程序加入此功能时可以直接套用,FindDialog的重要属性如下:
6-8 ReplaceDialog • 我们需要大量的修改某一特定字符串成为另一个特定字符串时,有的人会每次先Find出来再去修改,这种修改方式在修改数量不大时还可以这样使用,但是如果修改的字符串数量相当多,那么这种方式就很没有效率。所以在一些文字编辑软件中,除了搜寻的功能外,一般都还会有一个类似叫取代的功能。BCB提供了另一个对话框组件ReplaceDialog,可以让我们大量的搜寻和修改。一般窗口Replace对话框如下图。
6-8 ReplaceDialog • 上图中分别显示两个输入字段,第一为要搜寻的字符串,另一个为要更改成的字符串。如图中所示,可以点选Find Next搜寻下一个”I love Sally”字符串,确定要更改再点选Replace。如点选Replace All,则所有的”I love Sally”字符串将会被改成”I love Sally and Jimmy”。ReplaceDialog使用方式其实和FindDialog差不多,ReplaceDialog的重要属性如下:
6-9 对话讯息框的使用- MessageBox • 6-9-1:MessageBox 在很多情况下,我们需要给使用者一些讯息,这些讯息可能是一个提示、一个疑问、一个警告,甚置是一个错误。这些讯息我们习惯用一个对话框来表达,而在这个对话框中可能会有几个按钮、一个图标,以及一句讯息。别以为为了这个对话框我们又要在新增一的Form、拖曳出按钮、贴上图标,C++ Builder有一个MessageBox()函式,能够产生一个对话框,这个函式的格式如下:
MessageBox说明 • 其中Text就是我们要在对话框中显示的字符串,Caption是这个对话框的标题,Flag是这个对话框的格式,我们来看看Flag的用法:
6-9 对话讯息框的使用- InputBox • 6-9-2:InputBox 另一种对话框 InputBox和MessageBox很像,只是它没有图标,按钮也是预设的,而且它多了一个Edit组件。它的函式格式也和MessageBox很像: 其中ACaption变量为标题,APrompt为提示讯息,ADefault为默认值,当使用者输入数据并按下OK后,InputBox函式便会传回资料。
6-9 对话讯息框的使用- ShowBox • 6-9-3:ShowBox ShowBox函式格式如下: 这个对话框只有一个参数Msg,就是对话框中的讯息,当使用者按下OK后,程序就会继续执行,并不会有所影响。 ShowBox画面
本章习题 • 将本章第五节里所提到的小记事本范例,请将其功能建构完整。 • 设计一个图片档案浏览程序,能够把同一目录下的图文件用缩小图形预览。 • 利用对话讯息框,设计一个备忘录纪录和查询的系统。