在平时的计算机操作中,中文输入是不可避免的。使用者可能喜欢不同的中文输入法(inputmethodeditor,简称IME),这就不得 不经常点击任务栏中的中文图标或用CTRL+Space,CTRL+Shift热键切换,初学者用起来很不方便。针对这一问题,可以在开发软件时,在程序 中设置用户喜欢的中文输入法,方便用户的使用。Delphi中只有少数控件如TEdit支持IME,而且该功能不强,不能在运行时更改输入法。
笔者通过实践和摸索,查找了相关的IME资料,利用了WINDOWS API 函数,实现了IME的功能。
常用函数有:
API函数:BOOL ImmSimulateHotKey(HWNDhWnd,DWORDdwHotKeyID);// 模拟热键,其中Hwnd为程序窗口的句柄,dwHotHKeyID为模拟的热键,若成功则返回True
HKL GetKeyboardLayout(DWORDdwLayout);//获得当前键盘状态
BOOL ImmIsIME(HKLhKL);//判断当前是否处于中文输入状态,若是则返回True
自定义函数:
打开相应输入法:
OpenIme(imename:string), 例OpenIme('全拼输入法');关闭中文输入法:
CloseIme;
以下是一个简单的例子,仅起参考作用。使用时uses中加上imm,具体的实现方法及源代码如下: