说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

Delphi下编程实现中文输入

HTML文档下载 WORD文档下载 PDF文档下载
Delphi下编程实现中文输入

BorlandDelphi以其强大的功能及和高效的可 视化开发环境为广大程序设计员所青睐。尤其是它封装了WINDOWSAPI函数,能方便地利 用WINDOWS资源

大大加快了程序开发速度。

在平时的计算机操作中

中文输入是不可避免的。 使用者可能喜欢不同的中文输入法(inputmethodeditor

简称IME)

这就不得不经常点击 任务栏中的中文图标或用CTRL+Space

CTRL+Shift热键切换

初学者用起来很不方便。针对 这一问题,可以在开发软件时

在程序中设置用户喜欢的中文输入法

方便用户的使用。Delphi 中只有少数控件如TEdit支持IME

而且该功能不强

不能在运行时更改输入法。

笔者通过实践和摸索

查找了相关的IME资料

利 用了WINDOWSAPI函数

实现了IME的功能。

常用函数有:

API函数:BOOLImmSimulateHotKey

(HWNDhWnd

DWORDdwHotKeyID);//模拟热键

其中Hwnd为程序窗口的句柄

dwHotHKeyID

为模拟的热键

若成功则返回True

HKLGetKeyboardLayout(DWORDdwLayout);

//获得当前键盘状态

BOOLImmIsIME(HKLhKL);

//判断当前是否处于中文输入状态

若是则返回True

自定义函数:

打开相应输入法:OpenIme(imename:string)

例OpenIme('全拼输入法');

关闭中文输入法:CloseIme;

以下是一个简单的例子,仅起参考作用。

使用时uses中加上imm

具体的实现方法及源代码如下:

unitUnit1;

interface

uses

Windows

Messages

SysUtils

Classes

Graphics

Controls

Forms

Dialogs

StdCtrls

Buttons

imm;

type

TForm1=class(TForm)

ComboBox1:TComboBox;

BitBtn1:TBitBtn;

BitBtn2:TBitBtn;

BitBtn3:TBitBtn;

procedureFormShow(Sender:TObject);

procedureOpenIme(imename:string);

procedurecloseIme;

procedureComboBox1Change(Sender:TObject);

procedureBitBtn1Click(Sender:TObject);

procedureBitBtn2Click(Sender:TObject);

procedureBitBtn3Click(Sender:TObject);

private

{Privatedeclarations}

public

{Publicdeclarations}

end;

var

Form1:TForm1;

implementation

{$R*.DFM}

procedureTForm1.FormShow(Sender:TObject);

var

j:integer;

begin

forj:=0toscreen.imes.count-1do

begin

ComBoBox1.Items.Add(screen.Imes.strings[j]);

//获取系统中已安装的中文输入法

end;

end;

procedureTform1.OpenIme(imename:string);

var

I:integer;

myhkl:hkl;

begin

ifImeName<>''then

begin

ifScreen.Imes.Count<>0then

begin

I:=screen.Imes.indexof(imename);

ifI>=0then

myhkl:=hkl(screen.Imes.objects[i]);

activatekeyboardlayout(myhkl

KLF_ACTIVATE);//设置相应的输入法

end;

end;

end;

procedureTForm1.closeime;

var

myhkl:hkl;

begin

myhkl:=GetKeyBoardLayOut(0);

ifImmIsIME(myhkl)then

//判断是否在中文状态

若是则关闭它

immsimulateHotkey(handle

IME_CHotKey_IME_NonIME_Toggle);

end;

procedureTForm1.ComboBox1Change(Sender:TObject);

begin

OpenIme(ComboBox1.Text);

end;

procedureTForm1.BitBtn1Click(Sender:TObject);

begin

immsimulateHotkey(handle

IME_CHotKey_shape_Toggle);//切换半角和全角模式

end;

procedureTForm1.BitBtn2Click(Sender:TObject);

begin

immsimulateHotkey(handle

IME_CHotKey_symbol_Toggle);

//切换中文标点模式和英文标点模式

end;

procedureTForm1.BitBtn3Click(Sender:TObject);

begin

closeime;

end;

end.

本程序在Delphi3.0/4.0下通过。

云储存服务Dropbox用户达1.75亿 旨在同步而非保存 Windows Server 2012 R2里十个极好的新功能 走向台前的地图服务 彰显LBS应用的创新力量 调查显示:1/5的企业采用SDN技术 Chrome 28正式登陆Windows及Mac 成首个使用Blink内核的浏览器版本 不只是Chrome,Firefox也开始支持Web Audio API 验证HTML的5个原因和5个资源 微软WPC 2013:Office 365融合BI,Cloud OS加速,Intune折扣,SQL高版本数据库等 移动开发者走向全能开发者的五大技能 360和西部数码战略合作 一键开启为国内30万家网站提供免费安全服务 中兴携手英特尔发布基于X86的Geek手机 应用生态建设仍需努力 微软将WP周期延长至36个月 明年推企业功能包 Gartner:全球PC出货量二季度下滑11% 联想成全球最大PC厂商 用来简化开发任务的20个JavaScript类库 煎饼,娇妻,Belief:黄太吉的移动互联网营销 AWS大降价:最高打两折 推荐十款超赞的Google Chrome扩展插件 在团队中进行单元测试/TDD的12条经验 小米游戏中心6月数据报告:页游转手游怎么搞? 司机请专心:安全是车载APP要解决的大问题 Windows 8之父Steven Sinofsky:跨平台开发会为什么越来越难? 一些达成共识的JavaScript编码风格约定 语义技术——微软、谷歌和Facebook的必争之地 初创公司PlumGrid:前思科工程师的“逆袭之战” Firefox OS智能手机继续扩张 德国市场今日开售 如果让莎士比亚、海明威编写JavaScript代码 开源的数据可视化JavaScript图表库:ECharts 已迭代1.3亿年的分布式系统——Anternet 软硬整合:14个可改变世界的Kickstarter项目 是时候放弃MySQL的五大理由 比特币钱包Coinbase推出即时交易功能,无需银行转账手续 这个进制转换的程序写的很好~!但是我还是有点不明白的地方,请指教! 有什么好的学习vc的书呢?我对c++有点熟悉,能让我快速上手vc的书籍 ? 急!oracle management server无法启动啊! PB数据库的连接问题? 小问题,不知你能否解决? help,base64编码 大家好,我的问题很严重。。。 哪有mediaPlayer控件的中文开发资料,谢谢大家帮忙!!! 谁能和我说一下这个程序怎么作啊 寻找VRAMDir,在计算机应用文摘里写过! sql7+access的速度问题?大家的意见? 在CTreeCtrl中,如何知道用户点击已被选择了的Item? 哪里有bas5.0的下载??????????万分感激啊!! 打印问题谁能解决 谁用过‘北京利马公司’的ERP软件?评论??? 各位大哥帮帮我! 微软高手请进:CE下开发的三个(高难度)问题。。。 现在最好的jsp服务器是什么??最全面稳定的是哪一个?? 那位仁兄能给出一个24位bmp的图片转换成黑白的bmp图片的代码(别嫌分少啊) 对不住我的职业道德了…… 那位仁兄能给出一个24位bmp的图片转换成黑白的bmp图片的代码( 别嫌分少) 一个很菜的问题:怎样把文档类的数据传到CMainFrame 一个很有趣的问题,但是比较难哟,高手请进,一定给分!!!! 请问war是什么文件? 用LOTUS SCRIPT怎么样对修改一个文档中域的值?有没有代码? 各位,哪里有design patterns下载呀? 打印问题有谁能解决 十万火急,兄弟们过来帮帮忙........... 多字段模糊查询~~~谁会啊!! 高手请进 关于dialog和控件回车键消息处理的小问题 photoshop背景色的问题 虚函数能否做友元? const^:^ *********在dll文件中怎样打开一个窗口********* 自定义对话框 求解:怎样使用数据窗口能多页预览?有这项功能吗? 域的DNS有问题! 出现out of range 只是偶尔出现并不是经常出现?我的配置在里面 想问问大家关于微软认证的看法。 我有光驱上哪找 请问斑竹:c#中有类似exit(0)之类的函数吗, 请问谁有将可执行文件中的资源提取出来保存在新的rc文件中的源代码? PB数据库的连接分类解决问题? 数据窗口鼠标焦点为什么会遗失? 怎么用xp安装盘升级两千或酒吧下的wmp? 怎样得知ListBox中已经有多少项内容了? 看看大家关于微软认证的看法(只能给77,全给了) OFFICE XP以及金山词霸的漂亮菜单如何实现的??有源代码可以参考吗?? 谁能说一下"快手"的程序是怎么工作的啊 这个问题我都问了三遍了,还是没人帮忙回答一下? 请根据人类起源的科学知识,说说人是怎么来的(答案最好简略一点) EI核心版是什么意思 bis装 什么意思 芒硝的化学式是什么? 科学知识,如题 8.【1】食盐在20℃、100℃时制作成食盐的饱和溶液,则需溶解食盐的质量分别为 【 】克、【 】克.【2】若将100克水在100℃时制成饱和溶液,溶解食盐40克,然后将温度降到20℃,则 ei是什么意思 玻璃成分是二氧化硅,和水晶一样,都是晶体. 15、“知识即美德”中的“知识”指的是:() (3.00分) A.伦理学的知识 B.科学知识 C.对善的知识 各个传奇(热血、传奇世界、传奇3g)什么联系?有多少版本? 问道天然玉,水晶石,琥珀怎么获得啊 生活中有哪些科学知识,又有什么科学原理 ei+1=0是什么意思? 玻璃是二氧化硅做的吗?那为什么二氧化硅是晶体玻璃不是晶体? 玛瑙是什么 广州化工原料哪里买优惠 有关宇宙的小知识 芒硝是什么不要长篇大论 人类在建造人工生态系统的探索中还做了哪些努力?这些努力有什么意义? 有关宇宙的小知识!谁知道?详细一点也可以 2011年中国人口密度是美国人口密度的多少倍?最好是最新的数据 那里化工原料群? 水晶是什么物质?有什么性质?与玻璃有什么区别?与石头有什么区别?水晶有什么用途?价值如何? `日本人口密度大还是中国人口密度大? 人类在建造人工生态系统的探索中还做了哪些努力 得一石头,如图,硬度很高,尽管表面光滑,但可以轻易划伤玻璃,直径约为1cm.求鉴定. 什么是摩氏硬度 结构力学求解器内力系数EA怎么设 芒硝晶体是什么? 摩氏是硬度单位吗? 黑洞的密度有多大黑洞的密度究竟有多大?能打个比方说明一下吗?急想知道 20条生物小常识 急大约一个100字 要开学了 急 哪里买化工原料好?推荐一些质量有保证的,价格优惠点的 请问黑洞的密度有多大? 题目里面出现的“缺镁培养液”指的是含镁量很高的培养液还是没有镁的培养液? 摩氏硬度为9的矿石除了刚玉以外还有什么? 黑洞的密度是多大? 遗传多样性就是基因多样性吗,如果不是,二者有什么区别 摩氏硬度8.5等于多少洛氏硬度 结构力学求解器中的单元材料性质如何确定?本人在做毕业设计,打算用结构力学求解器,求竖向荷载作用下的框架内力.则要求输入梁、柱EI和EA等,问题是这个E是等于所采用的水泥的Ec,还是要预 豌豆的高茎基因(D)与矮茎基因(d)所含密码子为什么相同?有什么原因使其表现的性状不同? 化工原料在哪里能买得到 大家看一下这个Bis-Tris HCl ①细胞的结构②显微镜的使用③光合作用④细胞呼吸 买化工原料应注意什么? 结构力学求解器 请将单元性质输入后再计算是什么意思? 芒硝的化学式 GCr15轴承钢热处理后的弹性极限值和冲击韧度是多少? 结构力学求解器提示将单元性质输入再计算是什么意思 大苏打.芒硝的化学式是. 你知道人类在建造人工生态系统的探索中还做了哪些努力?这些努力有什么意义?急 结构力学求解器中怎么设置单元性质? 芒硝,石膏是什么东东啊,化学式是什么啊,急! 人类在建造人工生态系统的探索中还做的努力,这些努力有什么意义? 魔兽世界里·bis·和·AE·这两个名词是什么意思 芒硝的化学式是什么啊,分子量多少啊?还有其他化学式对应的俗称吗尽量多点. 人类在建造人工生态系统中的探索还做了哪些努力?这些努力有什么意义? bis(fluorosulfonyl)imide这是什么意思? 一个很简单的科学知识,上浮物体在水中都受到浮力的作用,可以用什么来测出浮力的大小? 什么是EI BIS的标准的含义这个也是钢材外贸中遇到的问题
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn