输入法问题已经解决,现在是简单的开发初级问题 (50分)

  • 主题发起人 主题发起人 zhangfu_mail
  • 开始时间 开始时间
Z

zhangfu_mail

Unregistered / Unconfirmed
GUEST, unregistred user!
各位:在delphi中如何获得系统当前的输入法?望赐教
 
listbox1.items.assign(screen.imes)
 
Screen.imes是列出当前系统所安装的输入法列表,但是我想得到的是系统当前所用的是
哪一种输入法,如:微软拼音
 
那只好imm.pas中寻找API了,我也不懂!
 
不懂,找啊找啊~~~~~~~~~~~~~~~~
 
使用GetKeyboardLayOut函数
 
hedx is ok.

uses
imm;

function GetImeFileName: string;
var
szImeFileName: array[0..MAX_PATH] of char;
begin
if ImmGetIMEFileName(GetKeyboardLayout(0), szImeFileName, MAX_PATH) <> 0 then
Result := AnsiUpperCase(StrPas(szImeFileName))
else
Result := '';
end;
 
谢谢各位,根据hedx的函数我已经解决了问题,但是,现在有一个简单的问题:我本来
要解决的问题是,用户录入大量数据的时候,所用的输入法各有不同,用户不停的来回
切换输入法感觉很麻烦,所以,我想每次用户录入的时候,获得他使用的输入法,下次
用户再进入该输入框时,仍使用他上次所用的输入法,我继承TEdit做了一个组件,已经
实现了功能,但是,注册之后,在模板上看不到该组件(如Standard),我想这个问题
一定很简单,但是我对开发环境不太熟悉,所以至今仍然没有解决,希望大虾指点一二

另外,在模板点右键的Property中可以看到已经注册的该组件
 
把ImeName保存起来再调用。。。。。

~~~~~~~~~~
 
问题结束,散分
 
后退
顶部