用屏幕交互语句之前,必须先定义好INFORMIX-4GL的屏幕类型。屏幕是信息显示的终端区域。缺省地,INFORMIX-4GL的屏幕区域是24行80列。INFORMIX-4GL可以把屏幕分成几个叫作窗口的小区域。
在INFORMIX-4GL中建窗口时,实际是创建了一个小屏幕。它减少了语句显示的区域。如果想在第16行显示MESSAGE语句,会引起错误,这是因为按INFORMIX-4GL的概念,没有第16行。任何时候只有一个窗口或屏幕可以成为活动的。被激活的最后一个窗口是当前窗口。
创建窗口的语句在别的章节中介绍。现在要了解的是:
l 创建的窗口数目没有限制。(只会受内存的限制)。
l 任何时候只有一个活动窗口。
l 可以决定按什么尺寸创建窗口。
l 窗口大小会影响其它的INFORMIX-4GL语句。
MESSAGE语句在消息行显示一个字符串。缺省地,消息行是活动窗口的第二行,但可以通过OPTION语句改变。OPTIONS语句例如:
消息在使用另一个MESSAGE语句前都保留在屏幕上,这意味着消除消息的唯一办法是显示另一个空消息或其它消息。
message “No more rows in that direction”
sleep 3
message “ ”
这个语句在屏幕上显示消息,并等待3秒钟再清除消息。这是MESSAGE语句最一般的用途。
可以使用MESSAGE语句的属性。属性影响MESSAGE显示的方式。下面列出了可在MESSAGE语句中使用的属性。
REVERSE BOLD BLINK DIM UNDELINE INVISIBLE
在本章的后面讨论。
用ERROR语句可在Error行显示一个字符串。缺省地,Error行是屏幕的最后一行,但可以通过OPTIONS语句改变。Error行位置与屏幕有关,与打开的窗口数无关。ERROR语句以反显形式显示正文并带有响声。
用户按别的键之前,错误信息一直显示在屏幕上。
可以使用ERROR语句的属性。属性会影响error显示的效果。下面列出了ERROR语句中可用的属性。
REVERSE BOLD
BLINK DIM
UNDELINE INVISIBLE
NORMAL
ERROR和MESSAGE语句在两方面不同:
l ERROR语句与屏幕有关,MESSAGE语句与窗口有关。(记住若没有窗口打开着,屏幕即当前窗口)。
l ERROR语句总是伴随着响声。
例如,假设缺省的错误信息行(屏幕最后一行)和消息行(屏幕第二行)没有改变,如上图,窗口打开了,遇到了MESSAGE语句和ERROR语句,注意;消息文本出现在窗口中,而错误信息文本显示在屏幕底部。
用DISPLAY语句可在屏幕的指定位置显示字符串。这与MESSAGE语句不同,MESSAGE语句总从消息行的左边界开始显示,用DISPLAY可以通过给定行、列位置,把信息显示在光标的当前位置。
可以使用DISPLAY语句的属性。下面列出了DISPLAY语句中有效的属性。
REVERSE BOLD
BLINK DIM
UNDERLINE INVISIBLE NORMAL
警告
若指定了不存在的行、列位置,会导致运行错误。
PROMPT语句和以前讲到的语句不同。它不只显示一行文本,还要等待用户响应。用户的响应存放在变量中,定义变量的语句在别的模块中。PROMPT缺省的显示位置是窗口的第一行。
lCHAR选项:当INFORMIX-4GL语句含有PROMPT语句,它会等待用户输入并按RETURN,如果使用了CHAR选项,PROMPT语句要求变量定义为单字符,且不等待用户按RETURN。
lHelp#选项:可以用PROMPT的Help#选项。Help#可以从用mkmessage工具创建的文件中找到编号的信息并在Help键按下后显示给用户,mkmessage工具在别的章节中讲到。
lON KEY选项:用于定义列在key-list中的键按下后的动作。ON KEY语句的用法在别的的章节中讨论。
PROMPT可以带属性使用。下面列出了PROMPT语句可用的属性。
REVERSE BOLD BLINK DIM
UNDERLINE INVISIBLE NORMAL
OPTIONS语句用于定义一些INFORMIX-4GL语句的缺省值。如MESSAGE、PROMPT和ERROR语句显示的缺省行位置,都可用OPTIONS语句改变。
如上图,FIRST和LAST保留字可用于设置显示MESSAGE、PROMPT和ERROR语句的显示位置。这两个保留字对于显示在活动窗口的PROMPT和MESSAGE特别有用。例如,用户输入一般在活动窗口的倒数第二行,要想让它与窗口大小无关,可通过如下设置OPTIONS语句:
options
prompt line last-1
注意
在应用中可能有多个OPTIONS语句。后面的OPTIONS设置若改变了前面的设置,则以后面的设置为准。否则,OPTIONS设置的值一直起作用。