一个窗口上有两个EDIT控件,创建窗体的时候,输入法是英文
EDIT1始终要是英文,EDIT2是用户自定义的输入类型。
如何通过代码设置?
我现在是这样做的,
当EDIT1获得发生onenter事件的时候,修改它的输入法为英文,同时备份原来的输入法。
tempmode:=EDIT1.ImeMode;
EDIT1.ImeMode:= imSAlpha;
当EDIT1失去焦点的时候。我修改它的输入法为原来的输入法。
EDIT1.ImeMode:= tempmode;
结果输入法还是没有改过来。始终是英文,EDIT2获得焦点时用户又得重新选择他的输入法。
本来想最初就设置的,可是不知道用户需要那种输入法
EDIT1始终要是英文,EDIT2是用户自定义的输入类型。
如何通过代码设置?
我现在是这样做的,
当EDIT1获得发生onenter事件的时候,修改它的输入法为英文,同时备份原来的输入法。
tempmode:=EDIT1.ImeMode;
EDIT1.ImeMode:= imSAlpha;
当EDIT1失去焦点的时候。我修改它的输入法为原来的输入法。
EDIT1.ImeMode:= tempmode;
结果输入法还是没有改过来。始终是英文,EDIT2获得焦点时用户又得重新选择他的输入法。
本来想最初就设置的,可是不知道用户需要那种输入法
begin
mState1 := GetKeyboardLayout(0);
end;procedure TForm1.Edit1Enter(Sender: TObject);
begin
ActivateKeyboardLayout(mState1,KLF_REORDER);
end;procedure TForm1.Edit2Exit(Sender: TObject);
begin
mState2 := GetKeyboardLayout(0);
end;procedure TForm1.Edit2Enter(Sender: TObject);
begin
ActivateKeyboardLayout(mState2,KLF_REORDER);
end;