那位高手能告诉小弟关于输入法编程的方法,多谢!!!100分 那位高手能告诉小弟关于输入法编程的方法,多谢!!!100分 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 我也是转载的一篇资料常 用 函 数 有: API函数:BOOL ImmSimulateHotKey(HWND hWnd,DWORD dwHotKeyID);//模拟热键其中Hwnd为程序窗口的句柄,dwHotHKeyID为模拟的热键,若成功则返回TrueHKL GetKeyboardLayout(DWORD dwLayout);//获得当前键盘状态BOOL ImmIsIME(HKL hKL);//判断当前是否处于中文输入状态,若是则返回True自定义函数:打开相应输入法:OpenIme(imename:string),例OpenIme('全拼输入法');关闭中文输入法:CloseIme;以下是一个简单的例子,仅起参考作用。使用时uses中加上imm 具体的实现方法及源代码如下: unit Unit1;interfaceusesWindows, Messages, SysUtils, Classes,Graphics, Controls, Forms, Dialogs,StdCtrls, Buttons,imm;typeTForm1 = class(TForm)ComboBox1: TComboBox;BitBtn1: TBitBtn;BitBtn2: TBitBtn;BitBtn3: TBitBtn;procedure FormShow(Sender: TObject);procedure OpenIme(imename:string);procedure closeIme;procedure ComboBox1Change(Sender: TObject);procedure BitBtn1Click(Sender: TObject);procedure BitBtn2Click(Sender: TObject);procedure BitBtn3Click(Sender: TObject);private{ Private declarations }public{ Public declarations }end;varForm1: TForm1;implementation{$R *.DFM}procedure TForm1.FormShow(Sender: TObject);varj:integer;beginfor j:=0 to screen.imes.count-1 dobeginComBoBox1.Items.Add(screen.Imes.strings[j]);//获取系统中已安装的中文输入法end;end;procedure Tform1.OpenIme(imename:string);varI:integer;myhkl:hkl;beginif ImeName<>'' thenbeginif Screen.Imes.Count<>0 thenbeginI:=screen.Imes.indexof(imename);if I>=0 then myhkl:=hkl(screen.Imes.objects[i]); activatekeyboardlayout(myhkl, KLF_ACTIVATE);//设置相应的输入法end;end; end;procedure TForm1.closeime;varmyhkl:hkl;begin myhkl:=GetKeyBoardLayOut(0); if ImmIsIME(myhkl) then //判断是否在中文状态,若是则关闭它 immsimulateHotkey(handle, IME_CHotKey_IME_NonIME_Toggle);end;procedure TForm1.ComboBox1Change(Sender: TObject);begin OpenIme(ComboBox1.Text);end;procedure TForm1.BitBtn1Click(Sender: TObject);begin immsimulateHotkey(handle, IME_CHotKey_shape_Toggle);//切换半角和全角模式end;procedure TForm1.BitBtn2Click(Sender: TObject);begin immsimulateHotkey(handle, IME_CHotKey_symbol_Toggle); //切换中文标点模式和英文标点模式end;procedure TForm1.BitBtn3Click(Sender: TObject);begin closeime;end;end. 那么你先去了解一下它的编码方式,一个汉字的组成,就如:Self.Caption := 对[1] + 'csdn'+极[1]+度[1]+失[1]+望[1]+中[1]你只要可以准确的说出它们会出现什么字才有可能去编; 如何把word保存到SQL2005数据库中? 如何在保存dbgrid里记录前,断幵数据源连接,保存成功后再连接。 条形码的产生与打印问题!(在线等待...) 那位大虾做过条码打印的程序;我是说直接打印到pos58打印机上; 用ADO为什么无法在DBF中查询? 200分。邮件服务器, 谁有做过?是否可以谈一谈?无论什么语言都可以。 有关TOleContainer的问题 USB重连求助 哪位高手给我写一个最简单的聊天程序!!!(非常感谢) 请问谁有关于图形绘制的小程序 问题:Update语句错误,帮我看看那儿错了,谢谢! 极菜问题!勿笑!help 谢谢
常 用 函 数 有: API函数:BOOL ImmSimulateHotKey(HWND hWnd,DWORD dwHotKeyID);//模拟热键其中Hwnd为程序窗口的句柄,dwHotHKeyID为模拟的热键,若成功则返回TrueHKL GetKeyboardLayout(DWORD dwLayout);//获得当前键盘状态
BOOL ImmIsIME(HKL hKL);//判断当前是否处于中文输入状态,若是则返回True自定义函数:打开相应输入法:OpenIme(imename:string),例OpenIme('全拼输入法');关闭中文输入法:CloseIme;
以下是一个简单的例子,仅起参考作用。
使用时uses中加上imm 具体的实现方法及源代码如下: unit Unit1;interfaceusesWindows, Messages, SysUtils, Classes,Graphics, Controls, Forms, Dialogs,StdCtrls, Buttons,imm;typeTForm1 = class(TForm)ComboBox1: TComboBox;BitBtn1: TBitBtn;BitBtn2: TBitBtn;BitBtn3: TBitBtn;procedure FormShow(Sender: TObject);procedure OpenIme(imename:string);procedure closeIme;procedure ComboBox1Change(Sender: TObject);procedure BitBtn1Click(Sender: TObject);procedure BitBtn2Click(Sender: TObject);procedure BitBtn3Click(Sender: TObject);private{ Private declarations }public{ Public declarations }end;varForm1: TForm1;implementation
{$R *.DFM}procedure TForm1.FormShow(Sender: TObject);varj:integer;beginfor j:=0 to screen.imes.count-1 dobeginComBoBox1.Items.Add(screen.Imes.strings[j]);//获取系统中已安装的中文输入法end;end;procedure Tform1.OpenIme(imename:string);
var
I:integer;
myhkl:hkl;
begin
if ImeName<>'' then
begin
if Screen.Imes.Count<>0 then
begin
I:=screen.Imes.indexof(imename);
if I>=0 then
myhkl:=hkl(screen.Imes.objects[i]);
activatekeyboardlayout(myhkl,
KLF_ACTIVATE);//设置相应的输入法
end;
end;
end;procedure TForm1.closeime;
var
myhkl:hkl;
begin
myhkl:=GetKeyBoardLayOut(0);
if ImmIsIME(myhkl) then
//判断是否在中文状态,若是则关闭它
immsimulateHotkey(handle,
IME_CHotKey_IME_NonIME_Toggle);
end;procedure TForm1.ComboBox1Change(Sender: TObject);
begin
OpenIme(ComboBox1.Text);
end;procedure TForm1.BitBtn1Click(Sender: TObject);
begin
immsimulateHotkey(handle,
IME_CHotKey_shape_Toggle);//切换半角和全角模式
end;procedure TForm1.BitBtn2Click(Sender: TObject);
begin
immsimulateHotkey(handle,
IME_CHotKey_symbol_Toggle);
//切换中文标点模式和英文标点模式
end;procedure TForm1.BitBtn3Click(Sender: TObject);
begin
closeime;
end;
end.
一个汉字的组成,就如:
Self.Caption := 对[1] + 'csdn'+极[1]+度[1]+失[1]+望[1]+中[1]
你只要可以准确的说出它们会出现什么字才有可能去编;