1 / 55

第五章 窗口设计

第五章 窗口设计. 用 FoxPro for Windows 来开发软件,能使应用软件也具有 Windows 风格的用户界面,本章主要介绍与窗口设计有关的命令,并讨论窗口着色等特性。 Browse 命令是 FoxPro 最有用的命令之一,本章也将讨论用该命令定义数据编辑窗的方法。. 5.1 窗口操作命令. 窗口定义与修改 窗口管理 激活、隐藏、显示、挂起、关闭 建立窗口的控制对象 文本编辑区、下推按钮 清除窗口内容. 窗口定义命令. 命令格式: DEFINE WINDOW < 窗口名 l>

mervin
Télécharger la présentation

第五章 窗口设计

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 第五章 窗口设计 用FoxPro for Windows来开发软件,能使应用软件也具有Windows风格的用户界面,本章主要介绍与窗口设计有关的命令,并讨论窗口着色等特性。 Browse命令是FoxPro最有用的命令之一,本章也将讨论用该命令定义数据编辑窗的方法。

  2. 5.1 窗口操作命令 • 窗口定义与修改 • 窗口管理 激活、隐藏、显示、挂起、关闭 • 建立窗口的控制对象 文本编辑区、下推按钮 • 清除窗口内容

  3. 窗口定义命令 • 命令格式: 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<颜色对表>] • 功能:建立一个窗口并且指出它的属性。

  4. 窗口定义命令 • 窗口名和窗口位置 • WINDOW子句的<窗口名1>指出要建立的窗口的名字。窗口名必须是由字母或下划线开头的字母、数字与下划线的组合,最多10个字符长。 • FROM…TO子句的<行坐标1,列坐标1>指出窗口左上角的位置,<行坐标2,列坐标2>为窗口右下角的位置,这两个位置表示了窗口的大小。 • 定义最简单的窗口只要指出窗口名和窗口位置 例如命令: DEFINE WINDOW w1 FROM 10, 1 TO 20, 20

  5. 窗口定义命令 • 窗口名和窗口位置 • 定义好的窗口并不马上看到,通过执行激活或显示窗口的命令才能显示出来。如果要激活刚才定义的窗口wl,可键入命令ACTIVATE WINDOW wl。 • AT…SIZE子句提供了定义窗口位置与大小的另一方法。<行坐标3,列坐标3>指定窗口左上角的位置,<行数,列数>分别指定窗口中行和列的数目。必须注意,用这种方法定义的窗口,其大小将受该窗口所用字体的影响。窗口中行高为字体的高度,列宽为字体中字母的平均宽度。

  6. 窗口定义命令 • 窗口标题栏 • TITLE子句的<字符表达式3>指定窗口的标题,标题将在窗口标题栏里自动居中(win3.1)。窗口标题的意义不同于前面提到的窗口名,窗口标题用于屏幕显示,而窗口名是编程时使用的窗口标识。例如命令 DEFINE WINDOW w1 FROM 10,1 TO 20,20 TITLE “winl"· 定义了窗口wl,显示时窗口的标题是winl • 标题栏的高度分为半高和全高两种形式。若定义命令中不含SYSTEM或FONT子句,所建立的窗口的标题栏为半高形式,也可使用HALFHEIGHT子句显式地指定标题栏为半高形式。

  7. 窗口定义命令 • 窗口边界 • FoxPro缺省的窗口边界为单线边界。 • DOUBLE,PANEL,SYSTEM子句都可用来产生宽条边界。SYSTEM子句略有不同,它既取宽条边界,又使窗口标题栏取全高形式。例如命令 DEFINE WINDOW w1 FROM 10,1 TO 20,20 SYSTEM 定义了具有宽条边界、全高标题栏的窗口W1。 • NONE子句表示不产生窗口边界,这种无边界的窗口一般需要配色以与周围环境区分。

  8. 窗口定义命令 • 窗口的动态属性 • 窗口的关闭、移动、改变大小、最小化、最大化等动态属性分别用CLOSE,FLOAT,GROW,MINIMIZE,ZOOM等子句来定义。 • CLOSE子句使窗口左上角显示控制选单框,且在控制选单框的弹出式选单中产生用来关闭窗口的“关闭”选项及其快捷键Ctrl+F4,此外还允许用FoxPro的File选单的Close选项来关闭窗口。关闭窗口不仅将它从屏幕上清除掉,并在内存中删去了它的定义。 • NOCLOSE子句和省略CLOSE子句起同样作用,即禁止关闭窗口。

  9. 窗口定义命令 • FLOAT子句允许窗口移动,用户便可用鼠标拖曳窗口标题栏来移动窗口;NOFLOAT和省略FLOAT起同样作用,即禁止移动窗口。 • GROW子句允许窗口改变大小,用户便可用鼠标拖动窗口边界使窗口放大或缩小;NOGROW和省略GROW起同样作用,即禁止改变窗口大小。 • MINIMIZE子句支持在窗口右上角产生最小化按钮,选定该按钮窗口将缩小为图标。 • ZOOM子句支持在窗口右上角产生最大化按钮,选定该按钮窗口将扩展到和FoxPro主窗口一样大。NOZOOM和省略ZOOM起同样作用,即禁止窗口最大化。

  10. 窗口定义命令 • 多级窗口 • 系统默认所定义的窗口落在FoxPro主窗口中,但是也允许将窗口定义在另一已建立的窗口中或WindOWS的桌面上。如果一个窗口定义在某窗口中,可将前者称为子窗口,后者称为父窗口。 • 命令格式中的IN子句用来指定父窗口。<窗口名2>表示已经存在的父窗口的名字,SCREEN表示父窗口是FoxPro主窗口;DESKTOP表示父窗口是桌面。 • 注意SCREEN和DESKTOP都是专用名词,不可缩写为前四个字符。

  11. 窗口定义命令 • 多级窗口 • 系统默认所定义的窗口落在FoxPro主窗口中,但是也允许将窗口定义在另一已建立的窗口中或WindOWS的桌面上。如果一个窗口定义在某窗口中,可将前者称为子窗口,后者称为父窗口。 • 命令格式中的IN子句用来指定父窗口。<窗口名2>表示已经存在的父窗口的名字,SCREEN表示父窗口是FoxPro主窗口;DESKTOP表示父窗口是桌面。 • 注意SCREEN和DESKTOP都是专用名词,不可缩写为前四个字符。 有关多级窗口的例子请看课本P169,[例5-2]

  12. 窗口定义命令 • 字体、字体大小与字形 • FoxPro文档规定的系统默认字体为"FoxFont”,大小为10点。交互操作时可通过Text选单的FONT选项来选择字体, • 在程序中将使用含有FONT子句的命令来选择字体。FONT子句的<字符表达式1>指定窗口所用字体;<数值表达式1>表示所用字体的大小,以点数来计算字体的大小。例如: DEFINE WINDOW wl FROM 5,5 TO 15,15 TITLE 'wl' FONT '宋体',12

  13. 窗口定义命令 • 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'

  14. 窗口定义命令 • 窗口图标与壁纸 • ICON FILE子句用来定义窗口最小化时显示的图标,其中的<.ico文件名>表明图标的图形文件必须是.ICO文件。 • 为保证窗口能进行最小化操作,命令中还须含有MINIMIZE子句。系统默认的窗口最小化图标是狐狸头。 • FILL FILE子句用来定义窗口壁纸,其中<.bmp文件名>用来指出组成壁纸的位图。

  15. 窗口定义命令 例如命令: 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节。

  16. 窗口修改命令 • 命令格式: MODIFY WINDOW <窗口名> | SCREEN…… • 功能:修改已定义窗口或FoxPro主窗口的属性。 • 与窗口定义命令相比,属性子句仅有如下差别:没有IN子句但增加了关键字SCREEN。为减少重复,以上命令格式中没有列出相同的子句。 • 只要定义的窗口尚未关闭,它的属性就能修改。WINDOW子句中的<窗口名>用来指出要修改的窗口名。在修改窗口命令中只需指定窗口名和有改变的属性子句。 SCREEN表示FoxPro主窗口,该窗口的属性可以直接修改; MODIFY WINDOW SCREEN 可以恢复FoxPro主窗口所有属性

  17. 窗口管理 • 在多窗口环境里,窗口可分为输出窗口和可见窗口两类。 • 任何时刻只可能有一个输出窗口,它可用于数据输入输出,但不一定显示在屏幕上; • 可见窗口只表示窗口可以显示出来,但不一定允许数据输入输出。 • 既可输出又可见的窗口称为活动窗口。 • 为确定输出窗口和窗口的可见特性,就需要了解激活、隐藏、显示、挂起、关闭等关于窗口管理的命令。

  18. 窗口激活命令 • 命令格式: ACTIVATE WINDOW [<窗口名1>[,<窗口名2>...]] | ALL [IN [WINDOW] <窗口名N> | SCREEN] [BOTTOM | TOP | SAME] [NOSHOW] • 功能:激活若干个用户定义窗口或FoxPro的系统窗口(仅用的DEFINE WINDOW命令定义的窗口并未激活)。 <窗口名1>[,<窗口名2>…]表示要激活的窗口的名字 IN子句的<窗口名N>或SCREEN用来指定被激活窗口的父窗口,并允许重新指定父窗口。 ALL表示激活所有用户已定义的窗口

  19. 窗口激活命令 • 不管用一条命令还是多条命令激活多少个窗口,系统规定仅最后激活的一个窗口为活动窗口。 • 允许激活的FoxPro系统的窗口包括:Filer,Calculator,Calendar/Diary,Command,Debug,Trace,View等。 • 用户窗口需先定义后激活,但系统所属窗口已预先定义,所以可直接激活。 • FoxPro主窗口是系统默认的活动窗口,也可用命令ACTIVATE SCREEN将它激活为活动窗口。 • 对窗口名字包含两个单词(如:Calendar/Diary)的窗口,FoxPro规定取其前一单词且用大写字母来表示。如: ACTIVATE WINDOW CALENDAR

  20. 窗口激活命令 • BOTTOM子句表示把激活的窗口放到序列最后 • SAME子句使活动窗口在序列中位置保持不变, • TOP子句把激活的窗口放到窗口序列的最前,这是系统默认状态; • NOSHOW子句激活但令激活的窗口成为不可见 例如:执行下述三条命令。 ACTIVATE WINDOW calculator &&激活计算器 ACTIVATE WINDOW CALENDAR BOTTOM &&台历日记本放到窗口序列的最后,计算器将保持为活动窗口 ACTIVATE WINDOW CALENDAR SAME . &&再次激活台历日记本,井使它在窗口序列中位置不变,计算器仍是活动窗口

  21. 窗口隐藏命令 • 命令格式: HIDE WINDOW [<窗口名1>[,<窗口名2>]...] | ALL [IN [WINDOW]<窗口名N> | IN[WINDOW]SCREEN)] [BOTTOM | TOP | SAME] • 功能:隐藏若干个已激活的用户定义窗口或FoxPro系统窗口。 • 隐藏窗口是将激活的窗口设置为不可见,但这些窗口仍为激活状态,也不改变输出性质。例如活动窗口被隐藏后它仍是输出窗口。 执行下述命令序列可使命令窗口被隐藏起来: HIDE WINDOW Command &&隐藏COMMAND窗口

  22. 窗口显示命令 • 命令格式: SHOW WINDOW <窗口名1>[,<窗口名2>...]|ALL [IN [WINDOW] <窗口名N> | IN SCREEN] [REFRESH] [TOP|BOTTOM|SAME] • 功能:显示若干用户定义和FoxPro系统窗口。 • 命令中的REFRESH子句适用于网络环境,它能对浏览窗口进行刷新。

  23. 窗口显示命令 • 窗口显示命令强制窗口显示,它可能在如下情况中使用: (1)窗口定义后未激活前需要显示; (2)窗口激活命令中用了NOSHOW子句,但后来需要显示; (3)将隐藏的窗口恢复成可见。 • 必须注意,在何种情况下显示(SHOW)命令都不会改变窗口的激活状态。从命令格式还可看出该命令能够显示多个窗口,并且显示先后次序可以控制。

  24. 窗口挂起命令 • 命令格式; DEACTIVATE WINDOW <窗口名1>[,<窗口名2>…] | ALL • 功能:挂起若干用户定义和FoxPro系统窗口。 • 窗口挂起的含义是:窗口变成不可见且不可输出,以前输出到窗口的内容也将被清除,但是它在内存中的定义仍然存在。 • 某窗口被挂起后,窗口序列中位于该窗口之后的一个窗口将成为活动窗口。

  25. 窗口关闭命令 • 关闭用户定义的窗口就是把它从屏幕上清除,并且删除它在内存中的定义。 • 用户窗口一旦关闭就不再存在,除非重新定义。不可以再用ACTIVATE命令激活,也不可以用SHOW命令显示 • FoxPro系统窗口关闭后不可以用SHOW命令显示,但仍然可以用ACTIVATE命令激活

  26. 窗口关闭命令 • 窗口关闭命令有以下三种。 • RELEASE WINDOWS [<窗口名表>] 用于关闭在<窗口名表>中指定的用户定义窗口和FoxPro系统窗口。缺省<窗口名表>表示关闭当前活动的用户定义窗口。 • CLEAR WINDOWS:关闭所有用户定义的窗口。 • CLEAR ALL:关闭所有用户定义的窗口和选单,该命令还有使系统回到初始状态的作用,即关闭所有库文件、清除所有内存变量,并将当前工作区设置为第一工作区。

  27. 窗口管理命令与窗口输出和可见特性的关系

  28. KEYBOARD命令 • KEYBOARD命令的功能是向键盘缓冲区装入一个字符串,执行命令时该字符串犹如从键盘键入一样立即起作用。如:KEYBOARD 'list' [例5-3]在用户程序中关闭命令窗口。 CLEAR KEYBOARD '{Ctrl+F4}' &&关闭命令窗口 @ 5,5 SAY 'X=' GET x DEFAULT SPAC(2) &&用户程序主体 READ ACTIVATE WINDOW COMMAND &&程序执行结束时激活命令窗口

  29. 建立窗口的控制对象 • FoxPro可以在窗口中定义的控制对象有: • 文本编辑区(Text Edit Regions) • 下推按钮(Push Buttons,简称按钮)、 • 不可见按钮(Invisible Buttons) • 单选按钮(Radio Buttons)、 • 复选框(Check Boxes) • 滚动列表(Lists)、 • 弹出控制(Popups)、 • 数码器(Spinners)

  30. 建立窗口的控制对象 • 运用这些控制对象可以方便人机交互。 • 这些对象都可用@命令来定义 • 文本编辑区使用是@...EDIT命令 • 其余均使用@...GET命令, • 激活仍使用READ命令。 • 由于使用屏幕构造器(参阅第六章)能够方便地定义各种控制对象,所以我们只简单介绍文本编辑区和下推按钮的定义方法。

  31. 建立文本编辑区 • 命令格式: @ <行坐标,列坐标> 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子句默认左对齐。

  32. 建立文本编辑区 • 命令格式: @ <行坐标,列坐标> 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表示不允许使用编辑区,此时编辑区以屏蔽颜色显示。

  33. 建立下推按钮 • 命令格式: @<行坐标,列坐标> 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子句的<内存变量>或<字段>接受选定按钮的序号或按钮提示字符串,提示字符串指在按钮面板上显示的字串。

  34. 建立下推按钮 • FUNCTION子句的<字符表达式1>格式为: "*附加码 提示字符串1;提示字符串2;..." 其中符号*是定义按钮的功能符,附加码有四个: T 按钮选定时终止READ,此为缺省情况 N 按钮选定时不终止READ H 各按钮水平排列 V 各按钮垂直排列 . • 一个提示字符串表示一个按钮。第一个字符串前须留一空格,各字符串间以分号“;”分隔。

  35. 建立下推按钮 • 功能符*B定义图形按钮,此时格式中提示字符串变为.BMP文件的路径及名字。 • 若用PICTURE子句来表达,<字符表达式2>的格式为 "@*附加码 提示字符串1;提示字符串2;..." • SIZE子句定义按钮的大小及按钮间的距离。<数值表达式2>表示按钮高度,<数值表达式3>表示按钮宽度,<数值表达式4>表示按钮间隔开的行数或列数。 • MESSAGE的<字符表达式5>作为按钮选定后的提示信息,显示在窗口的状态条中。

  36. 例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

  37. 清除窗口内容 • 命令格式(三种): ` @<行坐标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

  38. 画矩形框 • 命令格式: @<行坐标1,列坐标1>,<行坐标2,列坐标2> BOX • 功能:根据指出的坐标在FoxPro主窗口或用户定义窗口内画一个单线矩形框。 • 说明: • <行坐标1,列坐标1>和<行坐标2,列坐标2>分别为矩形框左上角和右下角的坐标。 • 若行坐标1和行坐标2相等则紧缩为一条横线,列坐标l和列坐标2相等则紧缩为一条竖线。 例如:命令“@2,5,10,20 BOX”,

  39. 5.2 窗口着色 Windows十分重视界面的配色,它为窗口的每一部分都设置了适当的颜色,组成“配色方案” (Color Scheme)。FoxPro for Windows界面的初始颜色,就是从Windows的当前配色方案得到的。 本节将首先说明与配色有关的几个术语,然后介绍FoxPro的主要着色命令。

  40. 颜色对 • 颜色对用来表示一个区域的前景和背景色,可记为“前景/背景”,例如在一个显示文本的窗口内,文本颜色称为前景,窗口颜色称为背景。 • 前景和背景可取的颜色如表4.2所示。下划线和反像只适用于单色显示器;“空白”并非白色,令前景或背景为X就表示不显示任何内容。若前景、背景两种颜色缺一,则缺省色为黑色。 • 颜色还有两个附加符号+和*,+号只能用于前景,使前景色高亮度显示,*号则只能用于背景,使背景色为高亮度。例如:颜色对“R/W*”表示前景为红色,背景为高亮度的白色。

  41. 颜色模式 • FoxPro共有24个颜色模式(Color Scheme): • 前12个模式中每个模式规定了某种对象的颜色。如1号颜色模式适用于用户自定义窗口;2号颜色模式适用于用户自定义选单;3号颜色模式用于水平选单;4号颜色模式用于弹出式选单等。 • 颜色模式13~16为系统保留使用; • 颜色模式17~24可由用户定义颜色。 • 每个颜色模式包括10个颜色对,不同的颜色模式其颜色对的作用也不相同,表5.3列出了颜色模式1和颜色模式2的颜色对的作用。

  42. 颜色模式 • 每个颜色模式包括10个颜色对,不同的颜色模式其颜色对的作用也不相同,表5.3列出了颜色模式1和颜色模式2的颜色对的作用。 FoxPro初始启动时,Windows的当前配色方案自动装入FoxPro的若干个颜色模式,从而形成FoxPro的缺省颜色。例如将Windows配色方案的“选单栏”设置为红色,FoxPro水平选单的底色也会变为红色。

  43. 颜色子句 • 有不少FoxPro命令都带有形如[COLOR SCHEME <数值表达式> | COLOR<颜色对表>]的颜色子句。如DEFINE WINDOW、@…SAY,各种@…GET,BROWSE等命令都含有这样的子句。 • COLOR SCHEME<数值表达式>子句可用来指定要使用的颜色模式,其中的<数值表达式>表示颜色模式号,取值范围为1-24。 • “COLOR<颜色对表>”子句用来指定不同于当前颜色模式的颜色,<颜色对表>表示的颜色对不超过10个。凡不改变的颜色对可仅用逗号表示。例如子句"COLOR ,W/G”表示当前颜色模式的第一颜色对不变,第二颜色对变为前景白色,背景绿色。 COLOR子句并不改变颜色模式的颜色配置,只是临时指定了颜色对,在其所在命令的有效范围内起作用。 例如:窗口定义命令中COLOR子句的颜色设置,只适用于所定义的窗口。

  44. SET COLOR TO命令 • 命令格式: SET COLOR TO [[<标准色对>][,[<增强色对>][,<边框色>]]] • 该命令可改变用户定义窗口(颜色模式1) 和 用户定义选单(颜色模式2)的颜色,它所设定颜色的作用范围是随后出现的各种显示命令。 • 该命令是一个向下兼容的命令,请用新的命令SET COLOR OF SCHEME代替

  45. SET COLOR OF SCHEME命令 • 命令格式: SET COLOR OF SCHEME <数值表达式1> TO [SCHEME <数值表达式2>|<颜色对表>] • 功能: 将一个颜色模式的颜色配置复制到另一个颜色模式,或改变颜色模式的颜色。

  46. SET COLOR OF SCHEME命令 • 选用<颜色对表>表示要改变由<数值表达式1>指定的颜色模式的颜色,<颜色对表>用来表示不超过10个的颜色对,不想改变的颜色对可用逗号表示。 • 选用<数值表达式2>表示要将一个颜色模式的颜色配置复制到另一个颜色模式,并且它表示目的颜色模式,源颜色模式则由<数值表达式1>指定。

  47. SET COLOR OF SCHEME命令 • 如果用户需要自己定义一个颜色模式,可使用颜色模式号17-24。用户既可以通过改变<颜色对表>来定义颜色,也可以从其它颜色模式复制出一个具有相同颜色配置的颜色模式。例如: SET COLOR OF SCHEME 1 TO SCHEME 17能将颜色模式l的颜色配置复制到颜色模式17中去。 • 用该命令设置颜色在窗口定义前设置才有效。 • 缺省可选项[SCHEME<数值表达式2>|<颜色对表>]表示恢复<数值表达式1>指定颜色模式的缺省颜色。

  48. 5.3 BROWSE窗的设计 • 打开库文件后用一条BROWSE命令,就可打开一个标准的BROWSE窗口,对数据进行浏览与编辑。但是在开发应用程序时,用户可能希望由自己来设计BROWSE窗,使之更加符合需要。 • 本节介绍使用BROWSE命令定义BROWSE窗的方法,及自定义的功能键的方法,并在自定义的BROWSE窗配上自定义的功能键。

  49. 定义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<颜色对表>] • 功能:浏览或编辑数据库文件。

  50. 定义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>作为栏目名。

More Related