我在界上有一个edit, 在edit的exit事件中想得到这个edit中的正在使用的输入法 一开始是默认的输入法, 然后我把切换成了 五笔输入法, 然后反焦点移到其它的控件中,可是显示出来的edit.imeName还是 默认输入法的名字 为什么? 怎么解决啊?
解决方案 »
- [免费软件]局域网监控及文件同步工具
- 判断SQL Server 中的 image字段
- treeview中的赋值问题?
- 谁有InstallShield 中文版
- 如何遍历窗体中所有DBEdit控件,然后设置其属性readonly为true
- 注册表问题!!高手进!!
- 怎样让label的caption能竖着排列(不用换行符)?
- IndyDB 数据库组件,开发[三层架构、安卓系统]从此又多了一种选择!
- 我在form中有封装了一个属性,以控制form的显示风格,而我在form的create和active中写代码都不行。另外,我的该属性应该在哪里赋值(不能在本窗体)
- 请问:D5、ADO、SQL 7三层结构,当两个用户同时存档时总出现Cannot create new connection because in manual transaction mode
- 这种功能怎么实现?
- ★张家界 这个季节好玩吗???就这几天!哪里有更多的咨询?
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;type
TForm1 = class(TForm)
Button1: TButton;
Button2: TButton;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;var
Form1: TForm1;implementation{$R *.dfm}
procedure SetmyIme(ImeName:string);
var
I: Integer;
HandleToSet: HKL;
begin
if not SysLocale.FarEast then Exit;
if ImeName <> '' then
begin
if (AnsiCompareText(ImeName, Screen.DefaultIme) <> 0)
and (Screen.Imes.Count <> 0) then
begin
HandleToSet := Screen.DefaultKbLayout;
I := Screen.Imes.IndexOf(ImeName);
if I >= 0 then
HandleToSet := HKL(Screen.Imes.Objects[I]);
ActivateKeyboardLayout(HandleToSet, KLF_ACTIVATE);
end;
end;
end;procedure ResetmyIme(ImeName:string);
begin
if not SysLocale.FarEast then Exit;
if ImeName <> '' then
begin
if AnsiCompareText(ImeName, Screen.DefaultIme) <> 0 then
ActivateKeyboardLayout(Screen.DefaultKbLayout, KLF_ACTIVATE);
end;
end;procedure TForm1.Button1Click(Sender: TObject);
begin
SetmyIme('中文 (简体) - 智能 ABC');end;procedure TForm1.Button2Click(Sender: TObject);
begin
ResetmyIme('中文 (简体) - 智能 ABC');end;end.
imemod 设置为默认的。即imDontCare .就可以。