本文整理自网络,侵删。
我们的客户电脑输入法各式各样,程序员如果指定了输入法,但是有可能客户电脑上并不存在,导致需要不停地进行切换。
这里分析了一下机制。
Delphi中录入框与输入法有关的是两个属性:输入法模式ImeMode,默认为ImDontCare 表示若输入法处于关闭状态则打开最近一次使用过的输入法;输入法名称ImeName,指定输入法名称.
具体机制:ImeMode=ImDontCare,如果输入框指定了ImeName时, 如果该输入法在电脑中存在,则打开该输入法; 如果该输入法在电脑中不存在,则关闭输入法,进入英文输入状态;如果输入框的ImeName为空时,跟上一个输入框有关。 如果上一个输入框ImeName为空,则与上一个输入框保持一致。 如果上一个输入框ImeName指定了输入法,不管该输入法是否存在,都关闭输入法,进入英文输入状态.由于各用户的中文输入法很难一致,导致用户输入法不停变换。因此,请大家将这两个属性设为:ImeMode=ImDontCareImeName置空这样用户可以一直使用当前选定的(中文)输入法,直到需要变换时才手工进行变换附:Imemode属性,表示输入框的输入法不同状态:
imClose 关闭状态;
ImOpen 打开状态;
ImChinese 中文输入法状态;
ImDontCare 表示若输入法处于关闭状态则打开最近一次使用过的输入法;这个说法不准,见上文
ImSAlpha 半角状态;
ImAlpha 全角状态。
如果不需要输入法切换功能,由用户自己控制的话,直接设置全局变量SysLocale.FarEast := False;
也就是设为非远东国家模式,Delphi不管输入法的事了。
相关阅读 >>
在一个exe文件中查找指定内容,找到则返回起始位置,否则返回0
更多相关阅读请进入《Delphi》频道 >>