-2-第4章通用功能—界面设计目录4.1界面风格设计4.2快捷键设置4.3进度指示器4.4打印机设置本章小结-3-第4章通用功能—界面设计4.1界面风格设计4.1.1三层结构设计面向对象方法与技术的主要特征之一是继承。继承有单继承和多继承之分:单继承是指一个类只继承另外一个类的属性和服务;多继承是指一个类继承了两个或两个以上类的属性和服务。图4.1三层树形GUI结构实施层………风格层模块层-4-第4章通用功能—界面设计风格层是整个系统界面的模板层,对整个系统界面风格的设计起主导作用,包括界面的色调和对象布局等。模块层的模块指系统相关业务模块,该层是基于问题域考虑的,以系统业务划分模块。它既继承了风格层的界面风格,又在用户界面中引入了能适应业务特点的变异成分,是系统界面风格与系统业务的结合体。实施层是最低层,是系统业务的具体执行层。同样,它是系统风格、业务风格和具体业务实施操作界面需求的结合体。4.1.2界面布局屏幕界面布局是由各个界面构件在屏幕界面中的位置、大小、图样等构成的整体屏幕格局。在系统应用中,除后来动态改变外,对象的绝大部分属性,如大小、布局、形状和色调等都是开发阶段的再现。因此,经常会出现用户界面与分辨率不协调的情况。分辨率越低,用户界面显得越大,有些部分超出屏幕范围而无法看到;反之,分辨率越高,界面越小,有时会给查看带来困难。在三层结构中,只要将变换公式写入根类适当的事件中,不仅实现了系统的界面布局而且也方便了对系统布局进行统一的管理。-5-第4章通用功能—界面设计改变分辨率后的界面正常界面-6-第4章通用功能—界面设计4.1.3界面风格界面风格是指在不同的屏幕界面设计中所表现出来的特色和个性。下面以信息系统最常用的用户界面之一—软件质量度量工具基本信息模块的查询与录入界面为例,说明三层结构的设计。图4.2风格层类w_root编程阶段用户界面图4.3模块层编程阶段用户界面继承后的浏览界面继承后的录入和编辑界面-7-第4章通用功能—界面设计图4.4查询概貌浏览-8-第4章通用功能—界面设计图4.5录入界面-9-第4章通用功能—界面设计4.1.4单sheet界面在某些软件系统的应用中,同一时间内只允许多文档界面的一个sheet界面出现,即该界面关闭之前,其他界面对用户是不可见的,同时由sheet注册在系统菜单中的菜单项也是不可见的。图4.6单sheet界面-10-第4章通用功能—界面设计4.2快捷键设置快捷键对于一个信息系统开发者来说,作用不一定明显,但对于一个信息系统最终用户可能很有用。因为最终用户可能只操作系统的一个或几个功能模块,而且频繁操作这几个模块。4.2.1捕捉快捷键在程序中keyflags为按键标志,取值及对应键为:1Shiftkey2Ctrlkey3Shift和Ctrlkeysstringls_text//存储快捷键字符串//使用非Shift、Ctrl键IFkeyflags=0THENCHOOSECASEkeyCASEKeyF2!ls_text=F2CASEKeyF3!ls_text=F3………CASEKeyF12!ls_text=F12ENDCHOOSE//执行相应快捷键功能………ELSEIFkeyflags=2THEN//使用Ctrl键//其他带Ctrlkey功能………ENDIF-11-第4章通用功能—界面设计4.2.2执行快捷键功//接前面程序integeri//按控件数循环FORi=1TOUpperBound(control[])//检查控件类型是否为CommandButtonIFcontrol[i].TypeOf()=CommandButton!THEN//如果是命令控件cb_CommandButton=control[i]//检查按钮文本是否包含ls_text中内容IFPOS(cb_CommandButton.text,ls_text)0THEN//检查按钮是否可操作IFcb_CommandButton.enabledAND&cb_CommandButton.visibleTHEN//执行快捷键cb_CommandButton.POSTEVENT(clicked!)ENDIFENDIFENDIFENDFOR-12-第4章通用功能—界面设计4.3进度指示器进度指示器设计的主体思路是:在一个显示进度条的窗口上使用两个大小相同,位置重叠用户对象控件,控件上的用户对象的前景色与背景色互反。图4.7两个进度条不重叠的显示方式用户对象1(上方)用户对象2(下面)-13-第4章通用功能—界面设计4.4打印机设置4.4.1普通打印设置普通打印设置是为了打印信息系统中的各种数据和各类统计报表而对打印机所作的设置。图4.8普通打印机设置-14-第4章通用功能—界面设计图4.9包含数据窗口控件的打印窗口-15-第4章通用功能—界面设计数据窗口格式设置内容可以以文本方式保存在本地计算机上,也可以保存在数据库中,前者只能在所保存的计算机中生效,后者只要以设置时的身份进入系统,在安装该系统的其他计算机中均有效。保存打印设置数据库表结构主体为:CREATETABLEXT_SETDEFAULT(OPT_IDVARCHAR2(20)NOTNULL,//用户IDDEF_TYPEVARCHAR2(10NOTNULL,//操作类型DEF_MENUNAMEVARCHAR2(250)NOTNULL,//菜单名称DEF_CLASSNAMEVARCHAR2(40)NOTNULL,//对象类名称PRIMARYKEY(OPT_ID,DEF_TYPE,DEF_MENUNAME,DEF_CLASSNAME));-16-第4章通用功能—界面设计4.4.2特殊打印设置在信息系统中,为了完成一些特定打印功能所做的设置称为特殊打印设置。下面以医院系统收银员所需的打印设置为例,说明一种P2P打印设置。图4.10单据类型与打印机设置-17-第4章通用功能—界面设计【设置】按钮程序如下:stringls_default[]integeri//清空设置界面dw_setup.reset()//判别操作系统类型CHOOSECASEsysbasic.ostype//读取打印机名称并存入字符串数组变量ls_default[]中CASEwindows!RegistryKeys(HKEY_CURRENT_CONFIG\System+&\CurrentControlSet\Control\Print\Printers,ls_default)CASEwindowsnt!RegistryValues(HKEY_CURRENT_USER\Software\Micro+&soft\WindowsNT\CurrentVersion\devices,ls_default)ENDCHOOSE//将打印机名称放入数据窗口dw_setup中FORi=1toUpperBound(ls_default[])dw_setup.insertrow(0)dw_setup.setitem(i,printername,ls_default[i])ENDFOR-18-第4章通用功能—界面设计【保存】按钮程序如下://将数据窗口的内容存入文件YYPrinter.txt中dw_setup.SaveAs(sysbasic.homedir+&\YYPrinter.txt,text!,FALSE)设置窗口OPEN事件程序如下:title=Message.StringParm//将文件YYPrinter.txt中的内容导入到数据窗口dw_setup中dw_setup.ImportFile(sysbasic.homedir+&\YYPrinter.txt)-19-第4章通用功能—界面设计本章小结界面风格图形用户界面三层结构快捷键进度指示器打印机设置