关于输入法的问题(20分)

  • 主题发起人 主题发起人 jeffsheng
  • 开始时间 开始时间
J

jeffsheng

Unregistered / Unconfirmed
GUEST, unregistred user!
从DBGRID焦点移出输入法也跟着丢失了,有没有办法解决(保持输入法不变);
 
你的意思是不是在DBGRID中设置了一次输入法
移出后再进去它就自动设置成你上次在这个DBGRID中设置的输入法
如果是这样我就有办法
不过你给我多少分?

 
[:)]试试将系统输入法设置一下试试
 
to:it_boy69
我只有90分了,全给你行不行???
 
DELPHI是用HKL类型变量记录一个键盘布局的(即一种键盘输入方式)
因此要先设一个全局变量来记录它
ImeHandle:HKL;

然后在OnExit事件:
ImeHandle:=GetKeyboardLayout(0); //将当前输入法记录下来
在OnEnter事件:
ActivateKeyboardLayout(ImeHandle,KLF_ACTIVATE);
//将记录下来的输入法设置为当前输入法

不过当第一次ENTER时,还没有设过 ImeHandle的值
所以要在Form1.onCreate事件中先
ImeHandle:=GetKeyboardLayout(0);


 
jeffshen
你没有给我分!!!!
 
你是抢分耶!!!!
 
我试过这种做法好像还是不行,焦点失去时输入法还是会变
 
你到底要做什么?
请说明白一点
 
简单说就是在焦点转移时输入法保持不变(现在发现在经过DBGRID时会变)
 
把所用的组件的IMAName设置相同的输入法即可
 
DBGRID不行
 
把所有的输入法设成中文,在把下边的设成空,就可以了,我就是这样舍得,效果很好
 
to cpjin
也不行啊,在EDIT处切换到全拼输入法,但经过DBGRID以后再到EDIT就变成默认输入法!(英文输入法)
 
jeffshen:
你的问题极不明确
比如你有两个 edit1, edit2 一个dbgrid
是不是想在 edit1 中设置五笔 到 dbgrid 或 edit2 中变成了英语
再回到edit1时想让程序自动又设成为五笔 ????
还是想另外做什么?
 
在edit的OnEnter事件里写imeName := 'xxx';
 
to:it_boy69
对不起,也许是我没说明白,现举例说明:
在FORM上有edit1、edit2、dbgrid1三个组件
所有输入法全部设为空,在edit1输入时我将输入法改为全拼输入法,焦点移到dbgrid,输入法保持不变,再从dbgrid移出到edit2,输入法自动变为windows系统默认的输入法(而我希望此时输入法也保持不变)。
 
你这段文字有几个地方叫人不明白:
所有输入法全部设为空,在edit1输入时我将输入法改为全拼输入法,焦点移到dbgrid,输入法保持不变,再从dbgrid移出到edit2,输入法自动变为windows系统默认的输入法(而我希望此时输入法也保持不变)。
1 焦点移到dbgrid,输入法保持不变,"保持不变"是什么意思是指这时dbgrid的输入法也成了全拼????

 
在FORM上有edit1、edit2、dbgrid1三个组件
所有输入法全部设为空,在edit1输入时我将输入法切换为全拼输入法,焦点移到dbgrid1,输入法是全拼输入法,再从dbgrid1移出到edit2,输入法自动变为windows系统默认的输入法(而我希望此时输入法还是全拼输入法)。

不知楼上兄弟是否明白了!
 
后退
顶部