1 智能感應簡介
VFP從7.0版開始增加了一個非常好的功能:智能感應(IntelliSense)功能。主要的功能有:(1)輸入命令縮寫及空格后,命令會自動擴展;(2)輸入函數(shù)名及左括弧、對象名及點之后,系統(tǒng)會自動提示相應的參數(shù)或屬性、方法名等供選擇。除了上述這些與其它語言類似的功能以外,VFP還有一個特點,那就是它提供了可供用戶二次開發(fā)的功能,即可以用腳本程序對功能進行擴展。
智能感應的所有內容及方案都在一個表中定義,表的文件名在系統(tǒng)變量_FOXCODE中存放。修改或擴展這個表的內容就可以改變智能感應的內容。在工具菜單中有一項是智能感應管理器(IntelliSense Manager)。智能感應管理器的作用其實就是幫助修改這個表。當然也可以直接用手工對表進行修改。
2 FOXCODE的表結構及用法
2.1 FOXCODE的表結構
此表共有十幾個字段,下面介紹一下幾個關鍵字段的用處:
Type:類型,有C(命令)、F(函數(shù))、P(屬性)、S(腳本)、O(對象)、U(用戶自定義)等
Abbrev:引發(fā)智能感應的關鍵詞,也是命令或函數(shù)的最短縮寫
Cmd:填寫腳本的名稱,放在{}內,此腳本名應在另外一條記錄的Abbrev字段中
Data:備注型,存放腳本程序,或存放任意數(shù)據(jù)
Expanded:命令或函數(shù)展開的全名
Tip:提示信息
根據(jù)Type的不同,這些字段的意義也有所區(qū)別,而且不一定全部需要,不需要的字段可以空著,下面簡單介紹一下不同用途的組合方式:
C或F:Abbrev中存放縮寫,Expand中存放全稱,Cmd中的腳本名可選
S:Abbrev中存放腳本名,Data中存放腳本程序
U:Abbrev中存放關鍵詞,Cmd存放空括弧{},腳本直接存放在Data中;或者:Cmd中存放腳本名,Data中存放數(shù)據(jù),腳本則在另外一條記錄中定義。
2.2 智能感應的簡單應用:提示信息的漢化
命令、函數(shù)、屬性等類型的記錄都是系統(tǒng)內部已經定義好的,雖然也可以修改,但基本上不好作太大的變動,畢竟功能的改造是有限的,在此就不詳加敘述了。然而有一點工作是可以做的,那就是對Tip字段進行漢化。由于VFP從7.0開始已經不再出中文版了,漢化工作必須由自己做,對于智能感應提示的漢化,不需對二進制文件進行修改,直接修改表的Tip字段即可,這樣漢化難度就很簡單了。漢化時要注意,由于里面的逗號是作為參數(shù)分隔符的,不要進行增刪,否則參數(shù)會錯位。內容中若需要添加逗號,請使用全角的中文逗號。這樣經過漢化之后,提示就變成中文的了。由于系統(tǒng)變量_FOXCODE的值可以改變,因此可以隨時改變它的值,選擇另外的表。若結合鍵激活功能,可以設置一個熱鍵用于切換_FOXCODE的值,以便隨時改變中、英文提示。
3.用戶自定義類型的使用
用戶自定義類型(Type為U)的記錄,是我們可以添加的。下面介紹一下腳本編寫的方法。
腳本實際上就是標準的VFP程序,簡單地說,就是在編輯時輸入一個在Abbrev字段中存在的字符串,并按空格鍵激活智能感應,那么系統(tǒng)就執(zhí)行相應的腳本程序,用腳本的返回值替換輸入的內容,若返回值為空,則不替換。調用腳本時,系統(tǒng)會傳入一個對象型的參數(shù)FOXCODE,這個參數(shù)包含了用戶輸入的及FOXCODE表中相應記錄中的許多有用的信息,腳本程序可以從中獲取信息。因此不管是否需要這個對象,腳本程序的第一句必須用LPARAMETERS接收傳入的參數(shù)。
4. FOXCODE對象的屬性
FOXCODE對象有許多屬性,沒有方法。與FOXCODE表的字段同名的屬性,分別代表相應的字段內容,除此以外比較有用的還有:
CursorLocaChar:執(zhí)行腳本后,放在要選中文本內容前后的特殊字符,默認為“~”
DefaultCase:缺省大小寫,來自Type為V的記錄的Case字段內容
FileName:編輯的文件名
FullName:當前輸入的整行文本
Location:使用編輯器的類型:
0:命令窗口,1:程序,8:菜單片段,10:代碼片段,12:存儲過程
UserTyped:用戶輸入的文本,不包括激活鍵、前導空格或Tab(可用FullLine代替)
valueTip:當valueType為“T”時的提示
valueType:腳本處理的方案,L:顯示列表項,V:顯示值,T:提示。這個屬性一般需要在腳本中賦值,用戶自定義的一般設置為“V”
VFP從7.0版開始增加了一個非常好的功能:智能感應(IntelliSense)功能。主要的功能有:(1)輸入命令縮寫及空格后,命令會自動擴展;(2)輸入函數(shù)名及左括弧、對象名及點之后,系統(tǒng)會自動提示相應的參數(shù)或屬性、方法名等供選擇。除了上述這些與其它語言類似的功能以外,VFP還有一個特點,那就是它提供了可供用戶二次開發(fā)的功能,即可以用腳本程序對功能進行擴展。
智能感應的所有內容及方案都在一個表中定義,表的文件名在系統(tǒng)變量_FOXCODE中存放。修改或擴展這個表的內容就可以改變智能感應的內容。在工具菜單中有一項是智能感應管理器(IntelliSense Manager)。智能感應管理器的作用其實就是幫助修改這個表。當然也可以直接用手工對表進行修改。
2 FOXCODE的表結構及用法
2.1 FOXCODE的表結構
此表共有十幾個字段,下面介紹一下幾個關鍵字段的用處:
Type:類型,有C(命令)、F(函數(shù))、P(屬性)、S(腳本)、O(對象)、U(用戶自定義)等
Abbrev:引發(fā)智能感應的關鍵詞,也是命令或函數(shù)的最短縮寫
Cmd:填寫腳本的名稱,放在{}內,此腳本名應在另外一條記錄的Abbrev字段中
Data:備注型,存放腳本程序,或存放任意數(shù)據(jù)
Expanded:命令或函數(shù)展開的全名
Tip:提示信息
根據(jù)Type的不同,這些字段的意義也有所區(qū)別,而且不一定全部需要,不需要的字段可以空著,下面簡單介紹一下不同用途的組合方式:
C或F:Abbrev中存放縮寫,Expand中存放全稱,Cmd中的腳本名可選
S:Abbrev中存放腳本名,Data中存放腳本程序
U:Abbrev中存放關鍵詞,Cmd存放空括弧{},腳本直接存放在Data中;或者:Cmd中存放腳本名,Data中存放數(shù)據(jù),腳本則在另外一條記錄中定義。
2.2 智能感應的簡單應用:提示信息的漢化
命令、函數(shù)、屬性等類型的記錄都是系統(tǒng)內部已經定義好的,雖然也可以修改,但基本上不好作太大的變動,畢竟功能的改造是有限的,在此就不詳加敘述了。然而有一點工作是可以做的,那就是對Tip字段進行漢化。由于VFP從7.0開始已經不再出中文版了,漢化工作必須由自己做,對于智能感應提示的漢化,不需對二進制文件進行修改,直接修改表的Tip字段即可,這樣漢化難度就很簡單了。漢化時要注意,由于里面的逗號是作為參數(shù)分隔符的,不要進行增刪,否則參數(shù)會錯位。內容中若需要添加逗號,請使用全角的中文逗號。這樣經過漢化之后,提示就變成中文的了。由于系統(tǒng)變量_FOXCODE的值可以改變,因此可以隨時改變它的值,選擇另外的表。若結合鍵激活功能,可以設置一個熱鍵用于切換_FOXCODE的值,以便隨時改變中、英文提示。
3.用戶自定義類型的使用
用戶自定義類型(Type為U)的記錄,是我們可以添加的。下面介紹一下腳本編寫的方法。
腳本實際上就是標準的VFP程序,簡單地說,就是在編輯時輸入一個在Abbrev字段中存在的字符串,并按空格鍵激活智能感應,那么系統(tǒng)就執(zhí)行相應的腳本程序,用腳本的返回值替換輸入的內容,若返回值為空,則不替換。調用腳本時,系統(tǒng)會傳入一個對象型的參數(shù)FOXCODE,這個參數(shù)包含了用戶輸入的及FOXCODE表中相應記錄中的許多有用的信息,腳本程序可以從中獲取信息。因此不管是否需要這個對象,腳本程序的第一句必須用LPARAMETERS接收傳入的參數(shù)。
4. FOXCODE對象的屬性
FOXCODE對象有許多屬性,沒有方法。與FOXCODE表的字段同名的屬性,分別代表相應的字段內容,除此以外比較有用的還有:
CursorLocaChar:執(zhí)行腳本后,放在要選中文本內容前后的特殊字符,默認為“~”
DefaultCase:缺省大小寫,來自Type為V的記錄的Case字段內容
FileName:編輯的文件名
FullName:當前輸入的整行文本
Location:使用編輯器的類型:
0:命令窗口,1:程序,8:菜單片段,10:代碼片段,12:存儲過程
UserTyped:用戶輸入的文本,不包括激活鍵、前導空格或Tab(可用FullLine代替)
valueTip:當valueType為“T”時的提示
valueType:腳本處理的方案,L:顯示列表項,V:顯示值,T:提示。這個屬性一般需要在腳本中賦值,用戶自定義的一般設置為“V”