Delphi下漢字輸入法的程式設計及使用

2021-04-17 06:50:35 字數 2357 閱讀 7486

許多windows應用程式的中西文錄入介面中,中西文的錄入需要反覆切換漢字輸入法,這樣使用起來非常麻煩,下面來介紹一種比較簡便的解決方法。本文的程式設計環境為delphi client/server suit ver 3.0(以下簡稱delphi 3.0)和中文windows 95。

1.delphi下的imename、imemode屬性

在delphi 3.0中的tedit、tmemo、tmaskedit等編輯元件在應用程式中經常使用,這三種元件都具有imename、imemode屬性。其中imename屬性是輸入法名稱,在物件觀察器中對應乙個包括當前系統中所有漢字輸入法的下拉組合框;imemode屬性是輸入法模式,在物件觀察器中也對應乙個下拉組合框,組合框中包含imclose、imopen、imchinese、imdontcare、imsalpha、imalpha六項內容。

imclose 表示輸入法處於關閉狀態;

imopen 表示輸入法處於開啟狀態;

imchinese 表示處於中文輸入法狀態;

imdontcare 表示若輸入法處於關閉狀態則開啟最近一次使用過的輸入法;

imsalpha 表示輸入處於半形狀態;

imalpha 表示輸入處於全形狀態。

2.delphi

下漢字輸入法的程式設計

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中選擇events選項卡,雙擊ondropdown,對此事件進行程式設計,其**如下:

combobox1.items.commatext:=screen.imes.commatext;

上面這個語句可以將中文windows 95中安裝的漢字輸入法新增到下拉組合框中,它巧妙地運用了tscreen類的imes特性,而imes特性本身又是乙個tstring類,其屬性commatext包含了windows 95已安裝的漢字輸入法,可以將其直接賦值給combobox1的相應屬性。如果直接編輯combobox1的屬性items來新增漢字輸入法名稱,則會在應用程式發布時,因使用者機器漢字輸入法的不確定性造成應用程式的不通用性。

在物件觀察器中雙擊onexit事件,對此事件進行程式設計,**如下:

edit1.imename:=combobox1.text;

memo1.imename:=combobox1.text;

(5)在form1中新增乙個命令按鈕button1,設定其屬性為:

caption=退出

font.size=12

雙擊此命令按鈕,對click事件進行程式設計,**如下:

close;

至此,整個示例的程式設計過程就完成了,儲存此應用程式及表單,再進行編譯、執行。

3.漢字輸入法的使用

首先在下拉組合框中選擇你所喜歡的漢字輸入法,將游標移到中文輸入編輯框中就會發現所選的漢字輸入法已自動出現在螢幕上;再將游標移到西文輸入編輯框中,漢字輸入法就會自動關閉;如果將游標移到中文多行文字編輯框中,則已選中漢字輸入法又自動出現了。

從上面的程式中可以得出,在應用程式的錄入介面中,設定乙個選擇輸入法的下拉組合框,並讓其控制錄入介面中所有可輸入項的imename屬性,既可以做到在中西文錄入過程中不必進行錄入法的來回切換,還可以做到讓使用者選擇自己最喜歡的漢字輸入法,而且這樣的錄入介面對於使用者來說也是非常友好、方便、快捷的。pcc

必須用'識別符號,但直接用'會出錯

tdataset.filter:='somebodyname='+chr(39)+'李*'+chr(39)

隱馬爾可夫模型拼音漢字輸入法

隱馬爾科夫模型 隱馬爾可夫模型 hidden markov model 是一種統計模型,用來描述乙個含有隱含未知引數的馬爾可夫過程。其難點是從可觀察的引數中確定該過程的隱含引數,然後利用這些引數來作進一步的分析。拼音輸入法中可觀察的引數就是拼音,隱含的引數就是對應的漢字。那麼我們要解決的就是隱馬爾可...

如何去掉delphi中的輸入法

在使用delphi開發程式時,經常會不注意的將edit或者memo等一些可以設定輸入法的控制項新增上自己電腦安裝的輸入法資訊,此時如果使用者的機器上沒有此輸入法則會產生意外的問題,所以及時的將輸入法資訊消除才可以。如何消除輸入法資訊呢?有兩種方法一種是使用鉤子的方法,一種是將最後的所有檔案中的 df...

Delphi 動態選擇控制項的輸入法

delphi 動態選擇控制項的輸入法 delphi的edit memo等可以接受使用者輸入的控制項,都可以通過imename屬性為其選擇乙個輸入法,但是在程式設計的過程中,我們無法知道最終的使用者會使用哪種輸入法,所以對於控制項imename屬性,我們一般不做設定,但在實際應用中,使用者又希望他們在...