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

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下通过。

金山云进一步聚焦云存储 Facebook公布用户数据:美国移动用户占比78% Zynga开源服务器监控工具zPerfmon 上海海事大学王洁:打造物流教学科研应用云平台生态系统 15个步骤创立技术公司,并收获千万用户(二) HTML5发展慢热 开发者热情不减 NimbleBit孪生兄弟创始人:最后悔没有专注和扩大品牌 将对Windows形成挑战:谷歌在Chrome OS中默认支持Office 微软的企业社交大动作:Yammer发布移动SDK 谷歌开源Gumbo:纯C语言实现的HTML5解析库 AMD发布APPML源码,构建clMath库 【观察】3个月,每天增加52台,又一家云企业跻身十万台服务器俱乐部 感受华为IT业务的实力 小米雷军:我为什么做红米? GitHub上线Trending功能,帮你轻松找到有潜力的开源项目 如私人秘书:谷歌搜索将变得更加个性化 微软将于10月17日正式发布Windows 8.1 Google推出在线教育C2C平台Helpouts 技术人员组团参加SDCC 2013的十个理由 继BAT之后 第四大巨头是谁 如果传统IT部门真的消亡,你该何去何从? 闪存突袭,混合储存是否已步入黄昏 Cloudera发布Hadoop开源组件Sentry:提供细粒度基于角色的安全控制 我从其他Shell脚本中学到了什么? 10个调试和排错的小建议 机器学习的时代来临,人类应该做点什么? 云端测试破1500万 Testin已为开发者省2亿 智能腕表inWatch:已发售近3600台 Bingo!微软证实Windows 8.1将捆绑安装Skype IBM宣布收购以色列网络安全公司Trusteer 约10亿美元 如何才能运作好一个开源项目? 出大问题了 notes designer的问题(在线等候.....)急!! 关于csdn上的网络道德问题!大家的网络需要大家共同来支持!(每一个真正的程序员都应来声援!) 高分回报:一条简单的SQL语句写法,谢谢各位大侠, asp中寫Response.cookies ("ITEM1")("SUBA")="Standy"在dotnet(C#)中如何讀出 在局域网内。知道一个机器的IP地址。如果获取这台机器的名字 带外数据具体有何用途?(在线等) 加了一个三角,高兴,散分! 请问一个三位重构的问题,哪里有这羊的的示例程序? 显卡显示有阴影??? 有挑战性的翻译,请翻译下列C++名词,并请举例说明 麻烦大哥们看看!关于wab应用中在datagrid中取值的问题 如何实现CSDN这样回答问题的效果? 初级问题,请各位大侠帮忙! 数据结构中关于二叉排序树的生成问题 请教高手:如何在一区域找到找到指定颜色的点?? 一个关于窗口的问题 如何在数据窗口实现编辑、修改等后的撤消、复制、粘贴、剪切功能! exec,sp_executesql语句,中字符串变量的问题 急~~~~(请赐教)! window.showModaldialog()问题 关于Internet Explorer不能打开链接的问题 求助 求购:中国地质大学(京)网络历年考研题复习资料 Longhorn与WINDOWS2003是何关系? applet的执行顺序问题?? 在数组里找到最大值的函数是什么? 没有监听器? VB .NET能用于AutoCAD开发吗? 如何用OnMouseWheel实现Image的放大缩小? 装了Media Player 9.0,怎么没声音? 如何将DataSet中的数据全部写入数据库? 简单问题(关于光标移动) 一个关于java的小问题要请教? 请问delphi中有二~十进制的转换函数吗..... 关于不同页面调用的问题,谢谢 can't open the file"cos.obj" 这里到底怎么了?有人“非典”发作了? 关于STL的问题: dreamwearver mx如何预览asp.net的一些控件>? 关于日期格式的问题 如何使自己的程序访问别的程序的内容? 很初级的问题. 关于DB2的培训资料或者ppt 初学JAVA希望大家介绍点好书,有分的哦~~~~~~~~~~ 关于DB2的培训资料或者ppt qqf (我就是我) 可以进来一下吗? 准备作一个短信项目,请做过类似项目的高手不吝指教! 关于刷新框架内页面的问题! 请教,真的很急,来看看,,, 帮忙出主意呀, 新认识一个MM, 特骄气, 爱好也少,怎么哄呀,或者兄弟们介绍一下经验. 求delphi 5开发人员指南 电子版 下列现象不属于旋转的是A.摩托车急刹车时向前滑动B.汽车在运动过程中车轮的转动 C.拧开自来水龙头的过程 D.钟表上时针的匀速运动 "我善养吾浩然之气”出自哪篇文章 2012美国总统选举你会支持谁?最好用他们辩论的外交政策说说~ 作业的拼音怎么拼 关于我善养吾浩然之气的读后感的文章 Entitlement program是指什么,在美国总统竞选辩论中听到的 "写作业"英语如何拼写? 求文章题目,文章里面有一句话是“我善养吾浩然之气”.高中还是初中语文里面有一篇文章,文章作者为了借书,就写了那篇文章给藏书人.文章里面有一句话是“我善养吾浩然之气”.这篇课文 2012美国总统辩论视频下载 图书室有一个两层书架,上层放的书史下层的2.5倍,如果从上层取出本放入下层,则两层的书的本数相等,上下层原来各有多少本书?用方程式计算 按照新课改的方法该怎么改? 求矩阵! 蚊子在生物链里怎么画,蚊子和人的关系是什么?3Q 怎样才能提高英语写作水平啊?我们现在没有英语课了,作文写了都没人帮改的?有什么办法吗? 与矩阵Z相似的矩阵是__________.Z=1 0 0 5 3 0 0 0 1 The professor and writer is invited to many universities to deliver lectures.为什么要用is而不用are? 我在C#中写了一个方法 请问哪错了 改怎么写为什么不能调用Student类中的name变量 已知矩阵相似给出一个矩阵,另一个矩阵如何求如A=1 Y Y B=0 0 0Y X Y 0 2 0111 0 4 0 阅读理解 A famous writer who was visiting Japan was invited to give a lecturPassage 1 A famous writer who was visiting Japan was invited to give a lecture at a university to a large group of students.As most of them could not understand spoken En 谁有培优口算题卡五年级下的答案我们老师上个星期给的口算我还没有写完快要开学了!求救求救求救! cs中说的说的英文什么意思翻译下? the professor was____ to give us a lecture this afternoon,but it has beenthe professor was____ to give us a lecture this afternoon,but it has been cancellled because of the delayed flight.A.demanded B,hoped C.scheduled D.arranged我记得arrange要 口算题卡第1页. 《谈骨气》文中的三个事例可以换位置吗?为什么? 乒乓球的旋转效应能看成质点吗 求《活着》《文化苦旅》《边城》《受戒》《古希腊的神话与传说》其中一篇摘抄+评论500字的摘抄式读书笔记 谈骨气 阅读答案 1.文章主要使用了那种论证方法?请具体分析. 2.文中的三个事例的顺序能否调换?为什么? the writer and ___poet is coming to ...要加the吗?是这个作家和这个诗人,还是这个人是作家和诗人? 谁有培优口算题卡四年级下册的答案,求.3Q 文中《谈骨气》的三个事例是如何体现的? I hear Mr.Smith is coming to give us a talk ____________A:in this afternoonB:on tomorrow morning C:at this eveningD:next Monday morning 寻求英语歌,元旦要表演我们在元旦要开一个英语聚会,要唱英语歌,我知道一个《一闪一闪亮晶晶》,但被别人占了,大家告诉我还有哪些歌曲的英文唱法也好听? 《谈骨气》文中选取了几个事例 《论语·里人》的读后感字数为300至400字 对于做匀速直线运动的物体,是否“若两物体的速率相同,则它们的速度必然相同,在相同时间内的位移相同” 欧洲现实主义文学被后人称为批判现实主义的原因 Professor Wang will give an English speech to us tomorrow改为被动语态 “若两物体的速率相同,则它们的速度必然相同,在相同时间内的位移相等”的说法是错误的,为什么? 七上第七课短文两篇导学案答案怎样理解“站在这双线道的马路边,这无疑是一种堕落”?现实生活中有像行道树一样具有奉献精神的人吗?怎样看待他们的价值?本文的现实意义是什么?学习了 摘出出自《十二章》中现在常用的成语 物体做匀速直线运动,物体的运动速度与在单位时间内通过的位移比较A.它们的单位是相同的B.它们的物理意义是一致的C.它们在数值上是相等的D.它们之间无任何区别 圆明园该重建的理由是什么?/我参加的是该重建,请帮我查一下该重建的理由! 一期关于运动会的板报叫什么题目好?尽量有个性、新颖,跟体育与健康联系上!好的话,我会给你很多分的! 关于高中认识论的 七上历史问题解决导学方案21课和第四单元检测答案人教版 生活报以我以幸福 ,我是一只凌空飞翔的燕子照样子写句子 生活 ,我是 .写三句不能重复快点急用 物体做直线运动,若在任意相等的时间内增加的位移相等,则物体就做匀速直线运动如题,这种说法对么, 圆明园应该重建理由我要用 甲、乙两瓶酒精溶液分别重300克和120克~~~~~甲、乙两瓶酒精溶液分别重300克和120克;甲中含酒精120克,乙中含酒精90克.从两瓶中应各取出( )才能兑成浓度为50%的酒精溶液140克.以前这类题还 We will go to buy something for the party this afternoon 同义句 七年级下册 中国历史 第六课导学案1、结合唐朝时中日交流的事实,你能举出几个日本受中国文化影响的事例么?2、唐朝时,为中印、中日两国的友好交往做出重大贡献的两位高僧的两位高僧分 有一个正方形花池,周围用尺寸为25厘米的方块砖铺了一条宽1.5米的小路,共有方块砖1776块,则甲乙两瓶酒精溶液非别重300克和120克,甲中含酒精120克,乙中含酒精90克.问从两瓶酒精重取出多少克 will you go to see the new building ___ this afternoon?1.on 2.in 3.at 4./ 夏、商、西周奴隶制经济高度发达是建立在对(                 )残酷剥削的基础之上的. 甲乙两瓶酒精溶液分别重300克和120克,甲瓶中含酒精120克,乙瓶中含酒精90克.问从两瓶中各取出多少克才能兑成浓度为50%的酒精溶液140克 美国总统选举之前为什么要进行辩论? 七年级人教版第六课导学案的全部答案 下列几种现象,只属于旋转的有( )①直升机起飞后螺旋桨的运动;②发电的风车的运动;③在笔直轨道上运行的列车;④传送带上的机器零件.A.0种 B.1种 C.3 种 D.4种请说明是哪几个,并讲清 判断对错 在一个 平行四边形中只能画出两条不同长短的高(?) 求2004年美国总统竞选辩论mp3,美国总统和副总统候选人的四场精彩辩论的mp3 澳大利亚一17岁男生步行赴学校途中遭美国商务部对中国输美味精发起“双反”澳学生流行靠吃“聪明药”提高成绩引发俄外交官被指在美国招募间谍 美联邦调美国拟投资82亿美元治水 有望以此刺俄称叙利亚军事对峙在加剧 系因种族教日本:中国舰队穿过冲绳本岛与宫古岛间墨西哥糖果厂爆炸致1人死40人伤 仍三名驻阿富汗英军官涉嫌私刑处决塔利班日议员质疑安倍 称应给首相出席国会次逾2.8万人白宫网站请愿 “杀光中国澳联邦贸易部长大赞华为 支持重估宽带新加坡办第四届“亚洲群英会” 特邀名澳大利亚借调英国电信精英助力国际宽带韩军警独岛防御联合演习 抵御外敌“入韩国前科技官员称福岛土壤污染可通过微克里称美国最大威胁非对手 而是内部机日民主党前干事长年内成立新团体 被疑巴西总统批美国监听默克尔 称美反恐理吉议会否决吉加金矿开采合作备忘录 股马达加斯加大选民众盼稳定 中国应邀派学生租房免缴“地方政府税”社区青年“体验”地震灾难老大爷退订金以开放资本市场释放更多投资红利汽车突开门撞倒骑车人“两会”安保志愿者受到表彰柳树下岗了柳絮拜拜吧北京男篮拿下“冠军点”坎坷中黄翔鹏揭晓了谜音社区布告栏易碰头通州首个自住商品房项目开始申购国足备战即时启动国足热身将以西亚队为主 6月份三场比内容“接地气”本报获好评业主私自扩建阳台 居民愤慨一拥拆除春季谨防 婴幼儿湿疹芳星园中学梦开始的日子清明 想你异地就医即时结算不该有实质性阻力找不同向您征集方庄的老故事
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘