550 likes | 775 Views
第五章 窗口设计. 用 FoxPro for Windows 来开发软件,能使应用软件也具有 Windows 风格的用户界面,本章主要介绍与窗口设计有关的命令,并讨论窗口着色等特性。 Browse 命令是 FoxPro 最有用的命令之一,本章也将讨论用该命令定义数据编辑窗的方法。. 5.1 窗口操作命令. 窗口定义与修改 窗口管理 激活、隐藏、显示、挂起、关闭 建立窗口的控制对象 文本编辑区、下推按钮 清除窗口内容. 窗口定义命令. 命令格式: DEFINE WINDOW < 窗口名 l>
E N D
第五章 窗口设计 用FoxPro for Windows来开发软件,能使应用软件也具有Windows风格的用户界面,本章主要介绍与窗口设计有关的命令,并讨论窗口着色等特性。 Browse命令是FoxPro最有用的命令之一,本章也将讨论用该命令定义数据编辑窗的方法。
5.1 窗口操作命令 • 窗口定义与修改 • 窗口管理 激活、隐藏、显示、挂起、关闭 • 建立窗口的控制对象 文本编辑区、下推按钮 • 清除窗口内容
窗口定义命令 • 命令格式: DEFINE WINDOW <窗口名l> FROM <行坐标l,列坐标1> TO<行坐标2,列坐标2> | AT <行坐标3,列坐标3> SIZE <行数,列数> [IN [WINDOW] <窗口名2>|IN SCREEN | IN DESKTOP] [FONT<字符表达式1>[,<数值表达式1>]][STYLE<字符表达式2>] [TITLE<字符表达式3>][HALFHEIGHT][DOUBLE | PANEL | NONE |SYSTEM] [CLOSE | NOCLOSE] [FLOAT | NOFLOAT] [GROW | NOGROW] [MINIMIZE] [ZOOM | NOZOOM] [ICON FILE<.ico文件名>][FILL FILE<.bmp文件名>] [COLOR SCHEME<数值表达式2> [COLOR<颜色对表>] • 功能:建立一个窗口并且指出它的属性。
窗口定义命令 • 窗口名和窗口位置 • WINDOW子句的<窗口名1>指出要建立的窗口的名字。窗口名必须是由字母或下划线开头的字母、数字与下划线的组合,最多10个字符长。 • FROM…TO子句的<行坐标1,列坐标1>指出窗口左上角的位置,<行坐标2,列坐标2>为窗口右下角的位置,这两个位置表示了窗口的大小。 • 定义最简单的窗口只要指出窗口名和窗口位置 例如命令: DEFINE WINDOW w1 FROM 10, 1 TO 20, 20
窗口定义命令 • 窗口名和窗口位置 • 定义好的窗口并不马上看到,通过执行激活或显示窗口的命令才能显示出来。如果要激活刚才定义的窗口wl,可键入命令ACTIVATE WINDOW wl。 • AT…SIZE子句提供了定义窗口位置与大小的另一方法。<行坐标3,列坐标3>指定窗口左上角的位置,<行数,列数>分别指定窗口中行和列的数目。必须注意,用这种方法定义的窗口,其大小将受该窗口所用字体的影响。窗口中行高为字体的高度,列宽为字体中字母的平均宽度。
窗口定义命令 • 窗口标题栏 • TITLE子句的<字符表达式3>指定窗口的标题,标题将在窗口标题栏里自动居中(win3.1)。窗口标题的意义不同于前面提到的窗口名,窗口标题用于屏幕显示,而窗口名是编程时使用的窗口标识。例如命令 DEFINE WINDOW w1 FROM 10,1 TO 20,20 TITLE “winl"· 定义了窗口wl,显示时窗口的标题是winl • 标题栏的高度分为半高和全高两种形式。若定义命令中不含SYSTEM或FONT子句,所建立的窗口的标题栏为半高形式,也可使用HALFHEIGHT子句显式地指定标题栏为半高形式。
窗口定义命令 • 窗口边界 • FoxPro缺省的窗口边界为单线边界。 • DOUBLE,PANEL,SYSTEM子句都可用来产生宽条边界。SYSTEM子句略有不同,它既取宽条边界,又使窗口标题栏取全高形式。例如命令 DEFINE WINDOW w1 FROM 10,1 TO 20,20 SYSTEM 定义了具有宽条边界、全高标题栏的窗口W1。 • NONE子句表示不产生窗口边界,这种无边界的窗口一般需要配色以与周围环境区分。
窗口定义命令 • 窗口的动态属性 • 窗口的关闭、移动、改变大小、最小化、最大化等动态属性分别用CLOSE,FLOAT,GROW,MINIMIZE,ZOOM等子句来定义。 • CLOSE子句使窗口左上角显示控制选单框,且在控制选单框的弹出式选单中产生用来关闭窗口的“关闭”选项及其快捷键Ctrl+F4,此外还允许用FoxPro的File选单的Close选项来关闭窗口。关闭窗口不仅将它从屏幕上清除掉,并在内存中删去了它的定义。 • NOCLOSE子句和省略CLOSE子句起同样作用,即禁止关闭窗口。
窗口定义命令 • FLOAT子句允许窗口移动,用户便可用鼠标拖曳窗口标题栏来移动窗口;NOFLOAT和省略FLOAT起同样作用,即禁止移动窗口。 • GROW子句允许窗口改变大小,用户便可用鼠标拖动窗口边界使窗口放大或缩小;NOGROW和省略GROW起同样作用,即禁止改变窗口大小。 • MINIMIZE子句支持在窗口右上角产生最小化按钮,选定该按钮窗口将缩小为图标。 • ZOOM子句支持在窗口右上角产生最大化按钮,选定该按钮窗口将扩展到和FoxPro主窗口一样大。NOZOOM和省略ZOOM起同样作用,即禁止窗口最大化。
窗口定义命令 • 多级窗口 • 系统默认所定义的窗口落在FoxPro主窗口中,但是也允许将窗口定义在另一已建立的窗口中或WindOWS的桌面上。如果一个窗口定义在某窗口中,可将前者称为子窗口,后者称为父窗口。 • 命令格式中的IN子句用来指定父窗口。<窗口名2>表示已经存在的父窗口的名字,SCREEN表示父窗口是FoxPro主窗口;DESKTOP表示父窗口是桌面。 • 注意SCREEN和DESKTOP都是专用名词,不可缩写为前四个字符。
窗口定义命令 • 多级窗口 • 系统默认所定义的窗口落在FoxPro主窗口中,但是也允许将窗口定义在另一已建立的窗口中或WindOWS的桌面上。如果一个窗口定义在某窗口中,可将前者称为子窗口,后者称为父窗口。 • 命令格式中的IN子句用来指定父窗口。<窗口名2>表示已经存在的父窗口的名字,SCREEN表示父窗口是FoxPro主窗口;DESKTOP表示父窗口是桌面。 • 注意SCREEN和DESKTOP都是专用名词,不可缩写为前四个字符。 有关多级窗口的例子请看课本P169,[例5-2]
窗口定义命令 • 字体、字体大小与字形 • FoxPro文档规定的系统默认字体为"FoxFont”,大小为10点。交互操作时可通过Text选单的FONT选项来选择字体, • 在程序中将使用含有FONT子句的命令来选择字体。FONT子句的<字符表达式1>指定窗口所用字体;<数值表达式1>表示所用字体的大小,以点数来计算字体的大小。例如: DEFINE WINDOW wl FROM 5,5 TO 15,15 TITLE 'wl' FONT '宋体',12
窗口定义命令 • WFONT函数用于返回窗口字体有关属性,它有两个参数,第一个参数取值可为1,2,3,分别表示返回指定窗口的字体名、字体大小、字形,第二个参数指出窗口名,例如: ? WFONT(1,'w1'),WFONT(2,'w1') &&返回字体“宋体”,大小12点 • STYLE子句的<字符表达式2>指定窗口所用字体的字形,例如命令 DEFINE WINDOW w1 FROM 5,5 TO 15,15 TITLE 'w1' STYLE 'iu'
窗口定义命令 • 窗口图标与壁纸 • ICON FILE子句用来定义窗口最小化时显示的图标,其中的<.ico文件名>表明图标的图形文件必须是.ICO文件。 • 为保证窗口能进行最小化操作,命令中还须含有MINIMIZE子句。系统默认的窗口最小化图标是狐狸头。 • FILL FILE子句用来定义窗口壁纸,其中<.bmp文件名>用来指出组成壁纸的位图。
窗口定义命令 例如命令: DEFINE WINDOW w1 FROM 1,1 TO 10,30 TITLE 'W1'; ICON FILE 'c:\foxpro\region.ico' MINIMIZE; FILL FILE 'c:\windows\cars.bmp' 表示窗口最小化后的图标呈地球形,窗口背景由轿车组成。 • 颜色 • COLOR SCHEME子句和COLOR子句分别用来指定颜色模式及其颜色,详见第5.2节。
窗口修改命令 • 命令格式: MODIFY WINDOW <窗口名> | SCREEN…… • 功能:修改已定义窗口或FoxPro主窗口的属性。 • 与窗口定义命令相比,属性子句仅有如下差别:没有IN子句但增加了关键字SCREEN。为减少重复,以上命令格式中没有列出相同的子句。 • 只要定义的窗口尚未关闭,它的属性就能修改。WINDOW子句中的<窗口名>用来指出要修改的窗口名。在修改窗口命令中只需指定窗口名和有改变的属性子句。 SCREEN表示FoxPro主窗口,该窗口的属性可以直接修改; MODIFY WINDOW SCREEN 可以恢复FoxPro主窗口所有属性
窗口管理 • 在多窗口环境里,窗口可分为输出窗口和可见窗口两类。 • 任何时刻只可能有一个输出窗口,它可用于数据输入输出,但不一定显示在屏幕上; • 可见窗口只表示窗口可以显示出来,但不一定允许数据输入输出。 • 既可输出又可见的窗口称为活动窗口。 • 为确定输出窗口和窗口的可见特性,就需要了解激活、隐藏、显示、挂起、关闭等关于窗口管理的命令。
窗口激活命令 • 命令格式: ACTIVATE WINDOW [<窗口名1>[,<窗口名2>...]] | ALL [IN [WINDOW] <窗口名N> | SCREEN] [BOTTOM | TOP | SAME] [NOSHOW] • 功能:激活若干个用户定义窗口或FoxPro的系统窗口(仅用的DEFINE WINDOW命令定义的窗口并未激活)。 <窗口名1>[,<窗口名2>…]表示要激活的窗口的名字 IN子句的<窗口名N>或SCREEN用来指定被激活窗口的父窗口,并允许重新指定父窗口。 ALL表示激活所有用户已定义的窗口
窗口激活命令 • 不管用一条命令还是多条命令激活多少个窗口,系统规定仅最后激活的一个窗口为活动窗口。 • 允许激活的FoxPro系统的窗口包括:Filer,Calculator,Calendar/Diary,Command,Debug,Trace,View等。 • 用户窗口需先定义后激活,但系统所属窗口已预先定义,所以可直接激活。 • FoxPro主窗口是系统默认的活动窗口,也可用命令ACTIVATE SCREEN将它激活为活动窗口。 • 对窗口名字包含两个单词(如:Calendar/Diary)的窗口,FoxPro规定取其前一单词且用大写字母来表示。如: ACTIVATE WINDOW CALENDAR
窗口激活命令 • BOTTOM子句表示把激活的窗口放到序列最后 • SAME子句使活动窗口在序列中位置保持不变, • TOP子句把激活的窗口放到窗口序列的最前,这是系统默认状态; • NOSHOW子句激活但令激活的窗口成为不可见 例如:执行下述三条命令。 ACTIVATE WINDOW calculator &&激活计算器 ACTIVATE WINDOW CALENDAR BOTTOM &&台历日记本放到窗口序列的最后,计算器将保持为活动窗口 ACTIVATE WINDOW CALENDAR SAME . &&再次激活台历日记本,井使它在窗口序列中位置不变,计算器仍是活动窗口
窗口隐藏命令 • 命令格式: HIDE WINDOW [<窗口名1>[,<窗口名2>]...] | ALL [IN [WINDOW]<窗口名N> | IN[WINDOW]SCREEN)] [BOTTOM | TOP | SAME] • 功能:隐藏若干个已激活的用户定义窗口或FoxPro系统窗口。 • 隐藏窗口是将激活的窗口设置为不可见,但这些窗口仍为激活状态,也不改变输出性质。例如活动窗口被隐藏后它仍是输出窗口。 执行下述命令序列可使命令窗口被隐藏起来: HIDE WINDOW Command &&隐藏COMMAND窗口
窗口显示命令 • 命令格式: SHOW WINDOW <窗口名1>[,<窗口名2>...]|ALL [IN [WINDOW] <窗口名N> | IN SCREEN] [REFRESH] [TOP|BOTTOM|SAME] • 功能:显示若干用户定义和FoxPro系统窗口。 • 命令中的REFRESH子句适用于网络环境,它能对浏览窗口进行刷新。
窗口显示命令 • 窗口显示命令强制窗口显示,它可能在如下情况中使用: (1)窗口定义后未激活前需要显示; (2)窗口激活命令中用了NOSHOW子句,但后来需要显示; (3)将隐藏的窗口恢复成可见。 • 必须注意,在何种情况下显示(SHOW)命令都不会改变窗口的激活状态。从命令格式还可看出该命令能够显示多个窗口,并且显示先后次序可以控制。
窗口挂起命令 • 命令格式; DEACTIVATE WINDOW <窗口名1>[,<窗口名2>…] | ALL • 功能:挂起若干用户定义和FoxPro系统窗口。 • 窗口挂起的含义是:窗口变成不可见且不可输出,以前输出到窗口的内容也将被清除,但是它在内存中的定义仍然存在。 • 某窗口被挂起后,窗口序列中位于该窗口之后的一个窗口将成为活动窗口。
窗口关闭命令 • 关闭用户定义的窗口就是把它从屏幕上清除,并且删除它在内存中的定义。 • 用户窗口一旦关闭就不再存在,除非重新定义。不可以再用ACTIVATE命令激活,也不可以用SHOW命令显示 • FoxPro系统窗口关闭后不可以用SHOW命令显示,但仍然可以用ACTIVATE命令激活
窗口关闭命令 • 窗口关闭命令有以下三种。 • RELEASE WINDOWS [<窗口名表>] 用于关闭在<窗口名表>中指定的用户定义窗口和FoxPro系统窗口。缺省<窗口名表>表示关闭当前活动的用户定义窗口。 • CLEAR WINDOWS:关闭所有用户定义的窗口。 • CLEAR ALL:关闭所有用户定义的窗口和选单,该命令还有使系统回到初始状态的作用,即关闭所有库文件、清除所有内存变量,并将当前工作区设置为第一工作区。
KEYBOARD命令 • KEYBOARD命令的功能是向键盘缓冲区装入一个字符串,执行命令时该字符串犹如从键盘键入一样立即起作用。如:KEYBOARD 'list' [例5-3]在用户程序中关闭命令窗口。 CLEAR KEYBOARD '{Ctrl+F4}' &&关闭命令窗口 @ 5,5 SAY 'X=' GET x DEFAULT SPAC(2) &&用户程序主体 READ ACTIVATE WINDOW COMMAND &&程序执行结束时激活命令窗口
建立窗口的控制对象 • FoxPro可以在窗口中定义的控制对象有: • 文本编辑区(Text Edit Regions) • 下推按钮(Push Buttons,简称按钮)、 • 不可见按钮(Invisible Buttons) • 单选按钮(Radio Buttons)、 • 复选框(Check Boxes) • 滚动列表(Lists)、 • 弹出控制(Popups)、 • 数码器(Spinners)
建立窗口的控制对象 • 运用这些控制对象可以方便人机交互。 • 这些对象都可用@命令来定义 • 文本编辑区使用是@...EDIT命令 • 其余均使用@...GET命令, • 激活仍使用READ命令。 • 由于使用屏幕构造器(参阅第六章)能够方便地定义各种控制对象,所以我们只简单介绍文本编辑区和下推按钮的定义方法。
建立文本编辑区 • 命令格式: @ <行坐标,列坐标> EDIT <内存变量> | <字段> SIZE <数值表达式1>,<数值表达式2> [,<数值表达式3>] [FUNCTION <字符表达式l>] [FONT<字符表达式2>[,<数值表达式4>]][STYLE<字符表达式3>] [DEFAULT<表达式>[ENABLE | DISABLE][MESSAGE<字符表达式4>] [VALID<逻辑表达式1>|<数值表达式5>[ERROR<字符表达式5>]] [WHEN <逻辑表达式2>][NOMODIFY][SCROLL] [TAB] [COLOR SCHEME <数值表达式6> | COLOR<颜色对表>] • 功能:定义一个文本编辑区,它用READ命令激活。文本编辑区是一个滚动列表,可用来编辑字符型的内存变量、数组元素、字段或备注型字段。 <行坐标,列坐标>表示文本编辑区的开始位置。 EDIT于句的<内存变量>或<字段>存储编辑内容。 SIZE子句的数值表达式1、2、3分别表示编辑区的行数、列数和编辑文本的最大长度。 FUNCTION子句的<字符表达式1>是功能符,有两种可以选用: I:文本居中;J:文本右对齐; 缺省FUNCTION子句默认左对齐。
建立文本编辑区 • 命令格式: @ <行坐标,列坐标> EDIT <内存变量> | <字段> SIZE <数值表达式1>,<数值表达式2> [,<数值表达式3>] [FUNCTION <字符表达式l>] [FONT<字符表达式2>[,<数值表达式4>]][STYLE<字符表达式3>] [DEFAULT<表达式>[ENABLE | DISABLE][MESSAGE<字符表达式4>] [VALID<逻辑表达式1>|<数值表达式5>[ERROR<字符表达式5>]] [WHEN <逻辑表达式2>][NOMODIFY][SCROLL] [TAB] [COLOR SCHEME <数值表达式6> | COLOR<颜色对表>] • 功能:定义一个文本编辑区,它用READ命令激活。文本编辑区是一个滚动列表,可用来编辑字符型的内存变量、数组元素、字段或备注型字段。 带有NOMODIFY子句表示编辑区的内容早可显示,不允许修改; SCROLL子句使编辑区右侧具有滚动条。 MESSAGE的<字符表达式4>用作编辑区选定后的提示信息,可在窗口的状态条中显示。 ENABLE表示允许使用编辑区(缺省)。 DISABLE表示不允许使用编辑区,此时编辑区以屏蔽颜色显示。
建立下推按钮 • 命令格式: @<行坐标,列坐标> GET <内存变量> | <字段> FUNCTION<字符表达式l> | PICTURE<字符表达式2> [FONT<字符表达式3>[,<数值表达式1>]][STYLE<字符表达式4>] [DEFAULT<表达式>] [SIZE<数值表达式2>,<数值表达式3>[,<数值表达式4>]] [ENABLE | DISABLE][MESSAGE<字符表达式5>] [VALID<逻辑表达式l> | <数值表达式5>][WHEN<逻辑表达式2>] [COLOR SCHEME<数值表达式6> | COLOR<颜色对表>] • 功能:定义一组按钮或图形按钮,用READ命令激活。 GET子句的<内存变量>或<字段>接受选定按钮的序号或按钮提示字符串,提示字符串指在按钮面板上显示的字串。
建立下推按钮 • FUNCTION子句的<字符表达式1>格式为: "*附加码 提示字符串1;提示字符串2;..." 其中符号*是定义按钮的功能符,附加码有四个: T 按钮选定时终止READ,此为缺省情况 N 按钮选定时不终止READ H 各按钮水平排列 V 各按钮垂直排列 . • 一个提示字符串表示一个按钮。第一个字符串前须留一空格,各字符串间以分号“;”分隔。
建立下推按钮 • 功能符*B定义图形按钮,此时格式中提示字符串变为.BMP文件的路径及名字。 • 若用PICTURE子句来表达,<字符表达式2>的格式为 "@*附加码 提示字符串1;提示字符串2;..." • SIZE子句定义按钮的大小及按钮间的距离。<数值表达式2>表示按钮高度,<数值表达式3>表示按钮宽度,<数值表达式4>表示按钮间隔开的行数或列数。 • MESSAGE的<字符表达式5>作为按钮选定后的提示信息,显示在窗口的状态条中。
例5-5:设计一个输入数据库文件名的对话框 CLEAR DEFINE WINDOW wl FROM 5,5 TO 11,40 TITLE '输入'; CLOSE FLOAT MINIMIZE SYSTEM ACTIVATE WINDOW wl @ 1,5 SAY '数据库文件名: 'GET biao DEFAULT SPACE(8) @ 3,8 GET xz FUNCTION '*h确定;取消'; SIZE 1.5,6,5 DEFAULT 1 VALID JY() READ CYCLE RELEASE WINDOW FUNCTION jy IF xz=1 IF FILE(biao+'.dbf') USE &biao BROWSE USE ELSE WAIT WINDOW '无此库文件!' NOWAIT ENDIF ENDIF
清除窗口内容 • 命令格式(三种): ` @<行坐标l, 列坐标1> @<行坐标l, 列坐标1> CLEAR @<行坐标l, 列坐标1> CLEAR TO <行坐标2, 列坐标2>] • 功能:根据指出的坐标清除FoxPro主窗口或用户定义窗口的一部分。 在行坐标l指出的行中,从列坐标1指出的列起清除至该行末尾。 例如:@ 2,5 清除由<行坐标1,列坐标1>指出的左上角直到所在窗口右下角的矩形区域。 例如:@ 2,5 CLEAR 清除左上角为<行坐标1,列坐标1>至右下角为<行坐标2,列坐标2>的矩形区域。 例如:@ 2,5 CLEAR TO 20,50
画矩形框 • 命令格式: @<行坐标1,列坐标1>,<行坐标2,列坐标2> BOX • 功能:根据指出的坐标在FoxPro主窗口或用户定义窗口内画一个单线矩形框。 • 说明: • <行坐标1,列坐标1>和<行坐标2,列坐标2>分别为矩形框左上角和右下角的坐标。 • 若行坐标1和行坐标2相等则紧缩为一条横线,列坐标l和列坐标2相等则紧缩为一条竖线。 例如:命令“@2,5,10,20 BOX”,
5.2 窗口着色 Windows十分重视界面的配色,它为窗口的每一部分都设置了适当的颜色,组成“配色方案” (Color Scheme)。FoxPro for Windows界面的初始颜色,就是从Windows的当前配色方案得到的。 本节将首先说明与配色有关的几个术语,然后介绍FoxPro的主要着色命令。
颜色对 • 颜色对用来表示一个区域的前景和背景色,可记为“前景/背景”,例如在一个显示文本的窗口内,文本颜色称为前景,窗口颜色称为背景。 • 前景和背景可取的颜色如表4.2所示。下划线和反像只适用于单色显示器;“空白”并非白色,令前景或背景为X就表示不显示任何内容。若前景、背景两种颜色缺一,则缺省色为黑色。 • 颜色还有两个附加符号+和*,+号只能用于前景,使前景色高亮度显示,*号则只能用于背景,使背景色为高亮度。例如:颜色对“R/W*”表示前景为红色,背景为高亮度的白色。
颜色模式 • FoxPro共有24个颜色模式(Color Scheme): • 前12个模式中每个模式规定了某种对象的颜色。如1号颜色模式适用于用户自定义窗口;2号颜色模式适用于用户自定义选单;3号颜色模式用于水平选单;4号颜色模式用于弹出式选单等。 • 颜色模式13~16为系统保留使用; • 颜色模式17~24可由用户定义颜色。 • 每个颜色模式包括10个颜色对,不同的颜色模式其颜色对的作用也不相同,表5.3列出了颜色模式1和颜色模式2的颜色对的作用。
颜色模式 • 每个颜色模式包括10个颜色对,不同的颜色模式其颜色对的作用也不相同,表5.3列出了颜色模式1和颜色模式2的颜色对的作用。 FoxPro初始启动时,Windows的当前配色方案自动装入FoxPro的若干个颜色模式,从而形成FoxPro的缺省颜色。例如将Windows配色方案的“选单栏”设置为红色,FoxPro水平选单的底色也会变为红色。
颜色子句 • 有不少FoxPro命令都带有形如[COLOR SCHEME <数值表达式> | COLOR<颜色对表>]的颜色子句。如DEFINE WINDOW、@…SAY,各种@…GET,BROWSE等命令都含有这样的子句。 • COLOR SCHEME<数值表达式>子句可用来指定要使用的颜色模式,其中的<数值表达式>表示颜色模式号,取值范围为1-24。 • “COLOR<颜色对表>”子句用来指定不同于当前颜色模式的颜色,<颜色对表>表示的颜色对不超过10个。凡不改变的颜色对可仅用逗号表示。例如子句"COLOR ,W/G”表示当前颜色模式的第一颜色对不变,第二颜色对变为前景白色,背景绿色。 COLOR子句并不改变颜色模式的颜色配置,只是临时指定了颜色对,在其所在命令的有效范围内起作用。 例如:窗口定义命令中COLOR子句的颜色设置,只适用于所定义的窗口。
SET COLOR TO命令 • 命令格式: SET COLOR TO [[<标准色对>][,[<增强色对>][,<边框色>]]] • 该命令可改变用户定义窗口(颜色模式1) 和 用户定义选单(颜色模式2)的颜色,它所设定颜色的作用范围是随后出现的各种显示命令。 • 该命令是一个向下兼容的命令,请用新的命令SET COLOR OF SCHEME代替
SET COLOR OF SCHEME命令 • 命令格式: SET COLOR OF SCHEME <数值表达式1> TO [SCHEME <数值表达式2>|<颜色对表>] • 功能: 将一个颜色模式的颜色配置复制到另一个颜色模式,或改变颜色模式的颜色。
SET COLOR OF SCHEME命令 • 选用<颜色对表>表示要改变由<数值表达式1>指定的颜色模式的颜色,<颜色对表>用来表示不超过10个的颜色对,不想改变的颜色对可用逗号表示。 • 选用<数值表达式2>表示要将一个颜色模式的颜色配置复制到另一个颜色模式,并且它表示目的颜色模式,源颜色模式则由<数值表达式1>指定。
SET COLOR OF SCHEME命令 • 如果用户需要自己定义一个颜色模式,可使用颜色模式号17-24。用户既可以通过改变<颜色对表>来定义颜色,也可以从其它颜色模式复制出一个具有相同颜色配置的颜色模式。例如: SET COLOR OF SCHEME 1 TO SCHEME 17能将颜色模式l的颜色配置复制到颜色模式17中去。 • 用该命令设置颜色在窗口定义前设置才有效。 • 缺省可选项[SCHEME<数值表达式2>|<颜色对表>]表示恢复<数值表达式1>指定颜色模式的缺省颜色。
5.3 BROWSE窗的设计 • 打开库文件后用一条BROWSE命令,就可打开一个标准的BROWSE窗口,对数据进行浏览与编辑。但是在开发应用程序时,用户可能希望由自己来设计BROWSE窗,使之更加符合需要。 • 本节介绍使用BROWSE命令定义BROWSE窗的方法,及自定义的功能键的方法,并在自定义的BROWSE窗配上自定义的功能键。
定义BROWSE窗 • 命令格式: BROWSE [FIELDS<字段表>] [FONT<字符表达式l>[,<数值表达式1>]][STYLE<字符表达式2>] [FOR <逻辑表达式1>] [LAST][LEDIT][REDIT] [FREEZE <字段> ] [LOCK<数值表达式2>] [NOAPPEND] [NODELETE] [NOMODIFY] [NOLINK] [NOMENU] [NOWAIT] [TITLE <字符表达式3>] [VALID[:F]<逻辑表达式2>[ERROR<字符表达式4>]] [WHEN<逻辑表达式3>] [[WINDOW<窗口名1>][IN[WINDOW]<窗口名2>|IN SCREEN]] [COLOR SCHEME <数值表达式3> | COLOR<颜色对表>] • 功能:浏览或编辑数据库文件。
定义BROWSE窗 • [FIELDS<字段表>]: <字段表>中每个字段可包含若干选项,字段格式为: <字段名>[:R][:<数值表达式>] [:V=<表达式l>[:F][:E=<字符表达式1>]] [:P=<字符表达式2>][:B=<表达式2>,<表达式3>[:F]] [:H=<字符表达式3>][:W=<逻辑表达式l>] :P=<字符表达式2>表示格式符。 例如“:P="999.99"”。 该选项的功能相当于@…GET的RANGE子句,用来设置范围检查。 <表达式2>,<表达式3>分别表示范围的下界和上界。 该选项的功能相当于@…GET的WHEN子句 <表达式1>设置光标进入字段校验。若<逻辑表达式1>值为真,移动光标时允许它进入该串段,否则光标会越过该字段。 :R 表示字段为只读,不能编辑。 :<数值表达式> 表示栏宽. 该选项的功能相当于@…GET的VALID子句,由<表达式l>设置光标离开字段校验。 默认字段值被修改才进行校验,使用“:F”强制不管字段值修改与否都进行校验。 <字符表达式l>为校验设置出错提示信息。 系统默认字段名作为栏目名,使用该选项则<字符表达式3>作为栏目名。