for ncount = 1 to gnnumfonts
? alltrim(gafontarray(ncount)) && 显示字体名
?? ' this is an example of ' ;
+ alltrim(gafontarray(ncount)) font gafontarray(ncount), 8
endfor
on key label 命令
示例 请参阅
指定当按下特定键或组合键,或者单击鼠标按钮时所要执行的命令。
语法
ON KEY [LABEL KeyLabelName] [Command]
参数
LABEL KeyLabelName
为键指定键标记,KeyLabelName 是键上的字母或数字或者指定给该键的特殊名称。下表列出了特殊的键标记名称。后面表中列出了 FoxPro for Macintosh 中例外的标记。
Visual FoxPro 键标记指定值:
键 键标记
LEFTARROW
RIGHTARROW
UPARROW
DNARROW
HOME HOME
END END
PAGE UP PGUP
PAGE DOWN PGDN
DEL DEL
BACKSPACE BACKSPACE
SPACEBAR SPACEBAR
INS INS
TAB TAB
SHIFT+TAB BACKTAB
ENTER ENTER
F1 to F12 F1, F2, F3 ...
CTRL+F1 to CTRL+F12 CTRL+F1, CTRL+F2 ...
SHIFT+F1 to SHIFT+F12 SHIFT+F1, SHIFT+F2 ...
ALT+F1 to ALT+F12 ALT+F1, ALT+F2, ALT+F3 ...
ALT+0 to ALT+9 ALT+0, ALT+1, ALT+2 ...
ALT+A to ALT+Z ALT+A, ALT+B, ALT+C ...
CTRL+LEFT ARROW CTRL+LEFTARROW
CTRL+RIGHT ARROW CTRL+RIGHTARROW
CTRL+HOME CTRL+HOME
CTRL+END CTRL+END
CTRL+PAGE UP CTRL+PGUP
CTRL+PAGE DOWN CTRL+PGDN
CTRL+A TO CTRL+Z CTRL+A, CTRL+B, CTRL+C ...
CTRL+0 CTRL+0
RIGHT MOUSE BUTTON RIGHTMOUSE
LEFT MOUSE BUTTON LEFTMOUSE
MOUSE BUTTON MOUSE
ESC ESC
Command
指定当按下特定键或组合键或者单击鼠标按钮时所执行的命令。
说明
一般来说,ON KEY LABEL 使用 DO 来执行一个过程。
在 READ,BROWSE,EDIT,CHANGE 或者用户自定义菜单的执行过程中,ON KEY LABEL 立即执行命令。如果按键或者单击鼠标时某程序正在运行,Visual FoxPro 将执行完该程序当前行后再执行 on key label 命令。在程序中创建的任何 ON KEY LABEL 键指定值在程序运行完毕后仍然有效。也可以在命令窗口中创建键指定值。
如果要恢复指定键的行为,可以使用 ON KEY LABEL KeyLabelName 命令。如果要把全部键的行为恢复正常,应使用 ON KEY 命令。
提示
为防止在执行 ON KEY LABEL 过程中递归调用,应在过程前面包含 PUSH KEY CLEAR 命令以废止所有激活的 on key label 命令。然后在过程末尾发出一个 POP KEY 命令来启用 on key label 命令。
ON KEY LABEL 键指定值在 Visual FoxPro 系统菜单栏、系统菜单、对话框和警报器等处不起作用。它们只在 Visual FoxPro 系统窗口、Visual FoxPro 文本编辑器、命令窗口、跟踪窗口等处有效。
与 ON KEY 不同,可以有多个激活的 on key label 命令。例如,可以为每个箭头键和鼠标按钮指派命令。
注意:在执行 ON KEY LABEL 时,PARAMETERS( ) 设置为 0。有关详细内容,请参阅 PARAMETERS( )。
FoxPro 中某些事件不可被俘获,因为它们在相应窗口的控制之下。特别的,当单击一个控制菜单或滚动条之类的窗口控制时,不执行 ON KEY LABEL MOUSE,ON KEY LABEL LEFTMOUSE 和 ON KEY LABEL RIGHTMOUSE 。还要注意在 Visual FoxPro 中,ON KEY LABEL 支持 CTRL+0,它将该组合键重定义为向字段中输入空值。
在 FoxPro for Macintosh 中,ON KEY LABEL 支持 命令键,可以用 CMD 命令指定它。CTRL 与 命令键在 FoxPro for Macintosh 中等价并且可互换使用。如果应用程序需要运行在其他 FoxPro 平台上,为获得最大的兼容性,最好使用 CTRL 键。
因为 Macintosh 的鼠标只有一个按钮,所以在单击鼠标时,应使用 ON KEY LABEL LEFTMOUSE 或 ON KEY LABEL MOUSE 来执行命令。当按下 + Option 键的同时单击鼠标时,应使用 ON KEY LABEL RIGHTMOUSE 来执行命令。
Macintosh 也支持为 RETURN 键指定值。ON KEY LABEL RETURN 与 ON KEY LABEL ENTER 等价。同样 ON KEY LABEL DEL 与 ON KEY LABEL BACKSPACE 等价。
在 FoxPro for Macintosh 中使用 CTRL+OPTION 来模仿 Visual FoxPro、FoxPro for Windows 以及 FoxPro for MS-DOS 中的 ALT 键。
有关 FoxPro for Macintosh 中键盘与键击的详细内容,请参阅《安装与 Macintosh 功能指南》中“键盘差异”一节。
on key label 命令示例
下例在箭头被按下时显示一条信息。
set talk off
clear
on key label rightarrow ? 'right arrow'
on key label leftarrow ? 'left arrow'
on key label uparrow ? 'up arrow'
on key label dnarrow ? 'down arrow'
set escape on
store .f. to glexit
on escape store .t. to glexit
store 0 to temp
@ 2,0 say 'press an arrow key to test on key label, <esc> to exit'
define window wenter from 10,20 to 14,60 double
activate window wenter
do while not glexit
enddo
deactivate window wenter
on key
close databases
open database (home( ) + 'samples\data\testdata')
use customer && 打开 customer 表
select distinct company ;
from customer ;
order by company ;
where country = 'germany';
into array gacompanies
= acopy(gacompanies, gacompaniestemp) && 对数组进行复制
clear
display memory like gacompaniestemp
一个字符表达式,指定要返回当前状态信息的 SET 命令。指定命令的当前设置作为一个字符串或数值串返回。
1 | 2
返回一个 SET 命令的附加信息。包含这个参数并不意味着对所有 SET 命令都返回附加信息,它只是返回下表所列的标有 1 和 2 的命令附加信息。
SET 命令 返回值
ALTERNATE ON 或 OFF
ALTERNATE, 1 FileName
BELL, 1 cWAVFileName
CENTURY ON 或 OFF
CENTURY, 1 nCentury
CENTURY, 2 ROLLOVER nYear
CLOCK ON 或 OFF
CLOCK, 1 nRow 和 nColumn
COMPATIBLE ON 或 OFF
COMPATIBLE, 1 PROMPT 或 NOPROMPT
COVERAGE,1 FileName
CURRENCY LEFT 或 RIGHT
CURRENCY, 1 cCurrencySymbol
DATE AMERICAN, ANSI, BRITISH/FRENCH, GERMAN, ITALIAN, JAPAN, USA, MDY, DMY, 或 YMD
DATE, 1 日期序列:
0 – MDY
1 – DMY
2 – YMD
DELIMITERS ON 或 OFF
DELIMITERS, 1 cDelimiters
EVENTTRACKING ON 或 OFF
EVENTTRACKING, 1 FileName
FIELDS ON 或 OFF
FIELDS, 1 FieldName1, FieldName2, ...
FIELDS, 2 LOCAL 或 GLOBAL
HELP ON 或 OFF
HELP, 1 FileName
KEY eExpression2, eExpression3
KEY, 1 eExpression2
KEY, 2 eExpression3
MESSAGE nRow
MESSAGE, 1 cMessageText
MOUSE ON 或 OFF
MOUSE, 1 nSensitivity
PRINTER ON 或 OFF
PRINTER, 1 FileName 或 PortName
PRINTER, 2 默认的 Windows 打印机名
PRINTER, 3 默认的 Visual FoxPro 打印机名
(在 Visual FoxPro 打印或页面设置对话框中设置)
RESOURCE ON 或 OFF
RESOURCE, 1 FileName
TALK ON 或 OFF
TALK, 1 WINDOW, NOWINDOW 或 WindowName
TEXTMERGE ON 或 OFF
TEXTMERGE, 1 cLeftDelimiter and cRightDelimiter
TOPIC cHelpTopicName | lExpression
TOPIC, 1 nContextID
说明
不能用 set( ) 函数指定所有 SET 命令,可以指定的命令列在上面参数部分的表中。
SET ( ) 可以识别所有 Visual FoxPro 中 SET 关键字的四字符缩写形式。例如,STAT 和 PRIN 可以分别用来代替 SET STATUS 和 SET PRINTER。
set( ) 函数与 SYS(2001) 的作用一样。