許多Windows應用程序的中西文錄入界面中,中西文的錄入需要反復切換漢字輸入法,使用起來非常繁瑣。筆者在利用Delphi開發某MIS的過程中,找到了一種比較簡捷的解決辦法。
本文設計環境為DELPHI CLIENT/SERVER SUIT VER3.0(以下簡稱Delphi3.0),中文Windows’95。
一、Delphi3.0下Imename 、Imemode屬性
在Delphi3.0中Tedit、Tmemo、TmaskEdit等編輯元件在應用程序中經常使用,這三種元件都具有Imename、Imemode屬性,Imename屬性是輸入法名稱,在對象觀察器中對應一包括當前系統中所有漢字輸入法的下拉組合框,Imemode屬性是輸入法模式,在對象觀察器中也對應一下拉組合框,組合框中包含imClose、imOpen、imChinese、imDontCare、imSAlpha、imAlpha六項內容:
imClose 表示輸入法處於關閉狀態。
ImOpen 表示輸入法處於打開狀態。
ImChinese 表示處於中文輸入法狀態。
ImDontCare 表示若輸入法處於關閉狀態,則打開最近一次
使用過的輸入法。
ImSAlpha 表示輸入處於半角狀態。
ImAlpha 表示輸入處於全角狀態。
二、Delphi下漢字輸入法的編程
在Delphi3.0中,中西文錄入界面中牽涉輸入的元件都具有Imename、Imemode屬性。在設計錄入界面表單時,對其中每一元件這二種屬性賦值,就可以在元件獲得焦點時,系統自動打開或關閉你所設定的漢字輸入法。但這種編程方法,對用戶來說一點靈活性也沒有,若系統所設定的輸入法不是其所擅長的,他們只好再通過Windows’95的輸入法選擇器重新進行選擇。
筆者通過在Form下放置一標簽及下拉組合框,比較靈活的解決了這個問題,示例中的Forma共放置了四個Label、二個Edit 、一個ComboBox、Memo及Button。以下為示例說明:
1、在Delphi中選擇File菜單下的New Application生成一新的應用程序。設定新窗體Form1的屬性
Caption=輸入法編程示例
2、在Form1中添加一兩個標簽Label1、Label2、Label3及編輯框Edit1、Edit2、Memo1,設定其屬性
Label1.Caption=中文輸入編輯框
Label1.Font.Size=12
Label2.Caption= 西文輸入編輯框
Label2.Font.Size=12
Label3.Caption= 中文多行文本編輯器
Label3.Font.Size=12
Edit1.ImeMode=ImOpen
Edit2.ImeMode=ImDontCare(缺省值)
Memo1.ImeMode=ImOpen
在編程時,對輸入西文或西文為主的元件ImeMode屬性一般設為缺省值即可;對輸入中文或中文為主的元件,ImeMode屬性一般設為Imopen,而ImeName屬性值在程序運行時由用戶設定 ,而此方法的靈活性正在於此。另外,將Edit1.Text、Edit2.Text、Memo1.Lines的值設為空。
3、在Form1中添加一標簽Label4,設定其屬性:
Caption = 選擇最喜歡的輸入法
Font.Size=12
Font.Color=紅色
4、在Form1中添加一下拉組合框Combobox1,在對象觀察器OBJECT INPECTOR中選擇事件列EVENT,雙擊OnDropDown,對此事件編程,寫入以下代碼:
ComboBox1.Items.CommaText:=Screen.Imes.CommaText;
以便將中文 WINDOWS’95中已安裝的漢字輸入法添加到下拉組合框中,此處巧妙地利用了TSCREEN類的IMES特性,而IMES特性本身又是一個TSTRING類,其屬性Commatext 包含了Windows’95已安裝的漢字輸入法,將其直接賦值給ComboBox1的相應屬性。否則,如果直接編輯ComboBox1的屬性Items,添加漢字輸入法名稱,會在應用程序發布時,因用戶機器漢字輸入法的不確定性,造成應用程序的不通用。
5、再在對象觀察器中雙擊OnExit事件,寫入以下代碼:
Edit1.Imename:=ComboBox1.Text;
Memo1.Imename:=ComboBox1.Text;
6、 在Form1中添加一命令按鈕Button1,設置其屬性:
Caption=退 出
Font.Size=12
雙擊此命令按鈕,對其Click事件編程,寫入以下程序:
Close;
7、整個示例程序設計過程完成,保存此應用程序及表單,此時編譯、運行,其界面如下:
首先,利用下拉組合框選擇你所喜歡的漢字輸入法,將光標移到中文輸入編輯框中,會發現你選擇的漢字輸入法自動在屏幕上出現,再將光標移到西文輸入編輯框中,漢字輸入法自動關閉,如果將光標放到中文多行文本編輯器中,已選擇的漢字輸入法又自動出現。
三、結束語
從上面的程序代碼可以出,在應用程序的錄入界面中,設置一輸入法選擇下拉組合框,並讓其控制錄入界面中所有可輸入項的