VFP智能感应的二次开发

VFP智能感应的二次开发,第1张

VFP智能感应的二次开发,第2张

1智能感知简介
VFP从7.0版本开始增加了一个非常不错的功能:智能感知功能。其主要功能如下:(1)输入命令缩写和空后,命令会自动扩展;(2)输入函数名和左括号、对象名和点号后,系统会自动提示相应的参数或属性、方法名等。供选择。除了上述类似于其他语言的功能外,VFP还有一个特点,就是提供了用户可以二次开发的功能,即可以通过脚本程序进行扩展。

智能的所有内容和方案都定义在一个表中,表的文件名存储在系统变量_FOXCODE中。通过修改或扩展该表的内容,可以改变智能感应的内容。“工具”菜单中的一项是智能感知管理器。智能传感器管理器的功能实际上是帮助修改这个表。当然也可以直接手工修改表格。

2 FOXCODE的表结构和用法

2.1 foxcode的表结构

这个表中有十几个字段。以下是一些关键字段:

Type:类型,包括C(命令)、F(函数)、P(属性)、S(脚本)、O(对象)、U(自定义)等。
ABREV:触发智能归纳的关键字,以及命令或函数的最短缩写
Cmd:填写脚本的名称并放入其中脚本的名称应该在另一条记录的缩写字段中
Data: remark type,存储脚本程序,或任何数据
Expanded:命令或函数的全名
Tip:提示信息。

根据不同的类型,这些字段的含义是不同的,并不是所有的字段都需要。不需要的字段可以空。下面简单介绍一下不同用途的组合:

或者c: abbrev存储缩写,Expand存储全名,Cmd存储脚本名
S:Abbrev存储脚本名,数据存储脚本程序
U:Abbrev存储关键字,Cmd存储空括号{},脚本直接存储在数据中;或者:脚本名存储在Cmd中,数据存储在Data中,脚本定义在另一个记录中。

2.2智能诱导的简单应用:提示信息的本地化。

系统中定义了命令、功能、属性和其他类型的记录。虽然可以修改,但基本上不容易改动太多。毕竟功能的修改是有限的,这里就不描述了。但是,有一件事是可以做的,那就是把尖场汉化。由于VFP从7.0开始就没有中文版了,所以本地化工作必须由我们自己来完成。对于智能感应提示的本地化,不需要修改二进制文件,直接修改表格的Tip字段即可,所以本地化难度非常简单。要注意中文翻译,因为里面的逗号是作为参数分隔符的,所以不要增删,否则参数会放错位置。如果需要在内容中添加逗号,请使用全角中文逗号。这样,被汉化后,提示就变成中文了。由于系统变量_FOXCODE的值可以更改,因此可以随时更改它的值并选择另一个表。结合按键激活功能,可以设置热键切换_FOXCODE的值,以便随时改变中英文提示。

3.用户定义类型的使用

用户自定义类型(u型)记录,我们可以添加。下面是写脚本的方法。

脚本实际上是一个标准的VFP程序。简而言之,在编辑时,输入一个存在于Abbrev字段中的字符串,然后按空键来激活智能感应。然后系统会执行相应的脚本程序,用脚本的返回值替换输入的内容。如果返回值为空,则不会被替换。调用脚本时,系统会传入一个对象类型的参数FOXCODE,这个参数包含了用户输入的大量有用信息以及FOXCODE表中的对应记录,脚本程序可以从中获取信息。因此,无论是否需要这个对象,脚本的第一句话都必须使用LPARAMETERS来接收传入的参数。

4.foxcode对象的属性

FOX对象有许多属性,但没有方法。与FOXCODE表中字段同名的属性分别代表对应字段的内容。此外,一些有用的是:

CursorLocaChar:执行脚本后,放置在要选择的文本内容前后的特殊字符,默认为“~”
默认大小写:默认大小写,类型为v的记录的大小写字段的内容
FileName:已编辑的文件名
FullName:当前输入的整行文本
Location:使用的编辑器类型:
0:命令窗口,1:程序,8:菜单片段,10:代码片段,12:存储过程
用户键入的:输入的文本 前导空框或制表符(可用FullLine代替)
value tip:value type为“t”时提示
valueType:脚本处理方案,l:显示列表项。 该属性一般需要在脚本中赋值,用户自定义的一般设置为“v”

位律师回复
DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
白度搜_经验知识百科全书 » VFP智能感应的二次开发

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情