Delphi实现自动切换输入法
Delphi实现自动切换输入法
我们在使用 Windows 平台(以下指中文版Windows)的软件时,常常需要输入一些有关信息,有时在一个编辑框内输入中文,而另一个编辑框却要求输入英文,这时我们不得不切换输入法。当我们在录入大量上述条件的数据至数据库时,频繁的切换无疑对速度影响很大,那么能不能在光标落入编辑框内时,就自动切换为所需的输入法呢?答案是肯定的,Delphi中就可以实现。
在delphi中,可直接键入内容的元件都具有ImeMode、ImeName属性,IME为(Input Method Editor)的缩写。其中ImeMode 为枚举型变量,取值为(imDisable,imClose,imOpen,imDontCare,imSAlpha,imAlpha,imHira,imSKata,imKata,imChinese,imSHanguel,imHanguel),默认为imDontCare,其他几种属性值与本文没有很大关系,内容又多,因此略过。ImeName也是枚举型变量,默认为空,具体取值范围与系统中所装输入法有关,在Delphi启动时,自动检测得变量取值范围,对于中文版Windows而言,智能ABC输入法、全拼输入法都是缺省安装的。
例如:一个用户登录窗口要求输入用户名(中文),口令(英文字母与数字的组合)。假设用户名为“陈理辉”,口令为“student”。设计步骤如下:
新建一窗体,设置其属性为
Caption: 登录窗口
Name LoginForm
BborderStyle bsDialog;
FormStyle: fsStayonTop
Position poScreenCenter
在窗体中放入两个TLabel构件,分别设置为
Caption 请输入用户名:
Caption 密码:
在窗体中放入一个TEdit构件,设置为
Name UserNameEdtText
ImeName 智能ABC输入法
在窗体中放入一个TEdit构件,设置为
Name PassWordEdt;Text
PasswordChar ′*′
放入一个TButton构件,设置为
Caption 确认(&O)
Name OkBtn
双击该构件加入如下代码:
procedure TLoginForm.OkBtnClick(Sender:TObject);