库 ConsoleLib 还包括类型为 PresentationAttributes 的系统变量。系统变量控制已显示输出的可视外观;并且要更改显示的外观,可通过设置 PresentationAttributes 字段 color、highlight 和 intensity 来更改这些变量。有关这些字段的详细信息,请参阅 EGL consoleUI 中的 PresentationAttributes 字段。
窗口是一个矩形区域,可在其中放置表示变量的其它可视实体。
在显示一个窗口而其它窗口都未在工作时,新窗口将在屏幕窗口中,这是一个矩形,具有操作系统中任何窗口的基本特征。在使用 Curses 库时,对于 UNIX 会有所不同;在这种情况下,consoleUI 窗口的显示将现有终端窗口置于开窗方式。
显示的任何其它窗口出现在屏幕窗口的内容部分,通常在已经打开的窗口的顶部。这些窗口还可以并排显示。
声明窗口时,可以设置各种属性。例如,position 是相对于屏幕的左上角的位置;而 size 是窗口的高度和宽度(以字符数计)。
myWindow WINDOW {name="myWindow", position = [2,2], size = [18,75], color = red, hasborder=yes};
通过使用名称以 ConsoleLib.openWindow 开头的 EGL 函数显示窗口。如果在显示其它数据时未显示窗口,EGL 将提供一个窗口。
myPrompt Prompt { message = "Type your ID: "};
通过将变量包括在 openUI 语句中来显示提示,该语句会将提示与类型为字符串的变量绑定,但仅适用于输入。可将提示配置为接受单个字符或字符串。
myField ConsoleField ( name="myFieldName", position=[1,31], fieldLen=20, binding = "myVariable" );
* ConsoleField { position=[2,5], value="Title: " };
强烈建议在声明指定 consoleField 时使用同一名称来表示 consoleField 和 consoleField 中的名称属性的值。但是,不同的名称对这两种用法也有效。在生成时解析对 consoleField 的访问时,应引用 consoleField 名称(如 myField)。在运行时解析访问时应引用名称属性值(如 myFieldName),就像使用 consoleField 在 openUI 语句中定义事件时那样。
consoleForm 是子类型为 ConsoleForm 的记录,不仅可以包括 consoleField,还可以包括在任何 EGL 记录中有效的任何字段。
如果只允许用户与 consoleForm 中的一部分 consoleField 交互,可以在 openUI 语句中以显式方式或通过引用字典来列出这些 consoleField。与 arrayDictionary 一样,该字典是在 consoleForm 中声明的,并且引用同样在该 consoleForm 中声明的 consoleField。
EGL 不显示在 consoleForm 中声明的任何基本变量。可使用这种变量来绑定 consoleField,就像可以使用在 consoleForm 外部声明的变量来绑定一样。
在 openUI 语句中指定的任何绑定将完全覆盖缺省绑定;不会保留任何 consoleForm 声明绑定。
有关属性 isConstruct 的详细信息,请参阅 OpenUI 语句。
跳进顺序是用户从一个 consoleField 跳进另一个 consoleField 的顺序。在缺省情况下,跳进顺序就是 consoleForm 声明中的 consoleField 的顺序。如果在 openUI 语句中输入 consoleField 列表,则跳进顺序就是该语句中的 consoleField 顺序;同样,如果在 openUI 语句中输入字典或 arrayDictionary,则跳进顺序就是该字典或 arrayDictionary 的声明中的 consoleField 顺序。
在缺省情况下,用户可通过按 Esc 键来退出与 consoleForm 有关的 openUI 语句。
菜单是水平显示的一组标签。一个标签表示整个菜单,一个标签表示菜单中的每个 menuItem。要确保用户选择特定 menuItem 时发生响应,在 openUI 语句中引用整个菜单并在该语句的 OnEvent 子句中引用该 menuItem。
menuItem 显示一个标签,使用方法在上一节中作了描述。
相关概念
ArrayDictionary
控制台用户界面
Dictionary
相关参考
ConsoleField 属性和字段
EGL consoleUI 中的 ConsoleForm 属性
EGL 库 ConsoleLib
UNIX 的 ConsoleUI 屏幕选项
EGL consoleUI 中的 Menu 字段
EGL consoleUI 中的 MenuItem 字段
openUI
EGL consoleUI 中的 PresentationAttributes 字段
EGL consoleUI 中的 Prompt 字段
EGL consoleUI 中的 Window 字段
相关任务
使用 consoleUI 创建界面