标题FOXBASE+菜单设计技巧一例
栏目软件操作与技巧
作者湖南 孟爱平
发布1993-04-09
程序第30行和47行建立了一个s1内存变量,用于存放屏幕移动字幕的内容;第50行至58行为一循环;第45行建立i内存变量,作为实现INKEY()函数循环条件。运行时,当不按任何键时,INKEY()函数不断返回ASCII码0值,使循环条件成立,从而保证循环内字幕移动和时钟显示得以实现;51至56行用于保证移动字幕和时钟每秒变换一次。当程序运行时,首先在屏幕上显示一个固定的菜单,这与我们通常设计的菜单无多大区别,菜单显示完毕,程序进入50至58行组成的循环,在未接受到任何键盘输入时,循环条件成立,并不断对系统时钟以秒为单位进行检测,目的是防止字幕移动过快,每当经过一个整秒段,利用SUBSTR()函数将变量S1的前两个字符移到该变量末尾(因一个汉字占两个ASCII码字符位置,如为西文则只需移动一个字符),并将字幕和时钟送到指定位置显示,使字幕和时钟每秒变换一次,从而实现菜单的动感。一旦按下任一键,循环条件不成立而退出循环,进入菜单选择。程序第61、62行为按回车键时用按“0”键来处理,用以退出程序。其余部分与常规程序设计类似。
附:源程序清单。(湖南 孟爱平)
7:set talk off
8:close data
9:CLEAR
10:set devi to scre
11:set scor off
12:set stat off
13:set cata off
14:bb1=chr(1)+chr(2)+chr(3)+chr(5)+chr(8)+chr(7)+chr(6)+chr(4)
15:DO WHILE.t.
16:SET COLOR TO G/,R/,N
17:clear
18:?"今天日期:"+str(year(date())-1900,2)+[年]+str(mont(date()),2)+[月]+str(day(date()),2)+[日]
19:?[]+cdow(date())
20:?"湖南省石化厅"
21:SET COLOR TO R/,R/
22:@4,11,6,64 BOX"&BB1."
23:SET COLOR TO+6/5
24:@5,13say[湖南省石油化工贸易公司工资管理系统]
25:SET COLOR TO G/,R/
26:?""
27:?""
28:?
29:?"化工厅人教处微机室"
30:sl=[省石油化工贸易公司]
31:?"1990.4"
32:?""
33:?""+TIME()
34:SET COLOR TO W/B
35:@row()+1,20 SAY"本系统为您提供如下服务"
36:SET COLOR TO+1
37:@row()+1,20 SAY REPL(CHR(2),36)
38:SET COLOR TO 2
39:@row()+2,8 SAY "1___人员变动2___工资调整3___工资输入4___工资计算"
40:@row()+2,8 SAY "5___打印6___查询7___文件管理0___退出系统"
41:al=[0]
42:@row()+2,10 say"请输入相应编号:"
43:set color to br*/
44:@20,30 say[0]
45:i=0
46:ti=time()
47:sl=sl+sl+sl+sl
48:set color to gr+/G
49:@24,0 say s1
50:do while i=0
51:if time()<>ti
52:ti=time()
53:sl=subs(s1,3,78)+subs(s1,1,2)
54:@12,34 say time()
55:@24,0 say s1
56:endif
57:i=inkey()
58:enddo
59:set color to BR*/
60:@20,30 say chr(i)
61:if i=13
62:A1=[0]
63:else
64:al=chr(i)
65:endif
66:set color to G/
67:DO CASE
68:CASE A1="1"
69:DO RYBD
70:CASE A1="2"
71:DO GZDZ
72:CASE A1="3"
73:DO GZSR
74:CASE A1="4"
75:DO GZJS
76:CASE A1="5"
77:DO GZDY
78:CASE A1="6"
79:DO GZJX
80:CASE A1="7"
81:DO wjgl
82:CASE A1="0"
83:set scor on
84:set func7 to [doGZ;]
85:CLEAR
86:@3,18 SAY"湖南省石油化学工业厅工资管理应用软件运行结束"
87:SET COLOR TO BG/,R/,n
88:@6,35 SAY"再见!"
89:set color to g/n,w/b
90:CLOSE DATA
91:set cata TO GZ
92:set stat on
93:set talk on
94:RETURN
95:END CASE
96:@10,0 CLEAR
97:END DO