首页 在DELPHI中实现中英文输入法自动切换

在DELPHI中实现中英文输入法自动切换

举报
开通vip

在DELPHI中实现中英文输入法自动切换在DELPHI中实现中英文输入法自动切换 在 DEL PHI 中实现中英文输入法自动切换 徐向阳 ,曹帮琴 ()信阳职业技术学院 ,河南 信阳 464000 摘 要 :针对中文应用系统中普遍存在的因中英文数据项并存引发的输入法切换问题 ,提出了在 Delphi 中通过调用 Windows API 函数实现中英文输入法自动切换的思路和解决方案 ,并通过一个简化的示例展示了在实际应用系统中的实现 途径 。 关键词 :Delphi ;API 函数 ;输入法 ;自动切换 () 文章编号 :1671 - 6132 ...

在DELPHI中实现中英文输入法自动切换
在DELPHI中实现中英文输入法自动切换 在 DEL PHI 中实现中英文输入法自动切换 徐向阳 ,曹帮琴 ()信阳职业技术学院 ,河南 信阳 464000 摘 要 :针对中文应用系统中普遍存在的因中英文数据项并存引发的输入法切换问题 ,提出了在 Delphi 中通过调用 Windows API 函数实现中英文输入法自动切换的思路和解决 方案 气瓶 现场处置方案 .pdf气瓶 现场处置方案 .doc见习基地管理方案.doc关于群访事件的化解方案建筑工地扬尘治理专项方案下载 ,并通过一个简化的示例展示了在实际应用系统中的实现 途径 。 关键词 :Delphi ;API 函数 ;输入法 ;自动切换 () 文章编号 :1671 - 6132 200609 - 0074 - 03 中图分类号 : TP 311. 1 文献标识码 :A 中文应用系统大都涉及中英文的混合录入 ,用户在数【功能】获得系统适用的所有与输入法对应的键盘布局 ,并将句柄复制到用户指定的缓冲区中 。句柄列 关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf 据录入时需要在中英文输入状态间进行切换 。一般地 ,用 ( ( 户是通 过 使 用 Windows 系 统 提 供 的 标 准 方 法 如 : Ctrl + 【语 法 】UINT Get KeyboardLayoutList int nBuff , HKL 3 )) IpList Space 组合键实现中英文输入法的切换 ,这在录入大批量 的数据时显得非常繁琐 。Delphi 为使用双字节 Windows 的 【参数】 nBuff :指定缓冲区中可以存放的最大句柄数 。国家提供了相应的输入法控制 ,在 TEdit 等编辑控件中都包 含 ImeName 和 ImeMode 两个属性 , 分别 用 于 控 制 输 入 法 和 IpList :缓冲区指针 ,指向一个类型为 HKL 的变量数组 。 输入模式 ,这使得可以在设计阶段从编辑控件 ImeName 属 缓冲区中数组存放着键盘布局的句柄 ,数组中的元素数量 性的下拉列表中选择输入法 ,当程序运行时 Delphi 会自动 至少应有 nBuff 规定的元素那么多 ,这个数组会随同句柄载 入可用的键盘布局 。 激活相应的输入法 ,从而使编辑控件获得焦点时 ,输入法自 【返回值】函数调用成功 ,返回值为装载到缓冲区中的 动转换成相应的中文输入状态 ,失去焦点时 ,又会自动切换 键盘输入法句柄数目 。若 nBuff 置为 0 ,返回值为缓冲区中 到英文状态 ,简单地实现输入法的切换 。此 方法 快递客服问题件处理详细方法山木方法pdf计算方法pdf华与华方法下载八字理论方法下载 对于单用 () 户使用的计算机系统非常方便 ,只需在设计阶段把编辑控 系统当前键盘布局的个数 以数组成员为单位。若函数调 用失败 ,返回值为 0 。调用 GetLast Error 函数可以获 得 更 多 件的 ImeName 设置为用户擅长的输入法即可 。但对于多用 户共同使用的计算机系统 ,由于各用户擅长和喜爱的输入 的错误信息 。 2. 2 ImmGetDescription 法不尽相同 ,采用这种方法反而会引起麻烦 ,在一定程度上 【功能】把键盘输入法种类复制到指定缓冲区 。降低了系统的灵活性 ,解决的办法就是在运行时刻根据用 ( 【语 法 】UINT ImmGetDescription HKL hKL , LPTSTR lp2户的选择动态地改变输入法 。 ) szDescription , UINT uBufLen; 1 设计思路 【参数】 HKL :键盘布局句柄 。在使用 Delphi 开发应用系统时 ,为动态地实现指定中 英文输入法自动切换 , 首先需要获取 Windows 系统当前用 LpszDescription : 存放用于描述输入法名称字符串的缓 冲区指针 。 户可以使用的输入法列表及各输入法的句柄 ,然后在需要 uBufLen :指定用于存放键盘布局名称字符串的缓冲区 输入中文的编辑控件获得焦点时激活用户选择的中文输入 法 ,失去焦点时关闭中文输入法 。由于 Delphi 本身没有提 大小 。若 uBufLen 置为 0 ,则返回值为接受所有当前键盘布 供获取输入法列表和激活输入法的程序接口 ,因此在程序 局的缓冲区中的大小 。 设计过程中 ,需通过调用 Windows 的 API 函数 Get Keyboard2 【返回值】复制到缓冲区的字符数 。 2. 3 Activate KeyboardLayout LayoutList 和 ImmGetDescription 获得系统已经安装 的 输 入 法 【功能】激活一种新的键盘布局 ,且该键盘布局对整个 列表及各输入法的句柄 ,并用 Activate KeyboardLayout 函数激 活用户指定的中文输入法 。 系统有效 ,而不只是对调用该函数的线程有效 。 ( ) 【语法】Activate KeyboardLayout HKL hkl ,UINT Flags2 与输入法相关的 API 函数 【参数】 2. 1 Get KeyboardLayoutList HKL :指向需要激活键盘布局的句柄 。键 盘 布 局 必 须 先由 LoadKeyboardLayout 或 Get KeyboardLayoutList 函数载入 。procedure EnIme ; begin 也可用 HKL NEXT 常数激活下一个已装载的键盘布局 ,或 () Activate KeyboardLayout pList 1 , 0 ; 用 HKL PREV 载入前一个键盘布局 。 end ; Flags :指定键盘布局被激活的方式 。可以为“KLF RE2 ORDER”、“KLF SETFORPROCESS”、“KLF UNLOADPREVI2 initialization OUS”“、KLF ACTIVATE”。在程序中我们选择“KLF ACTI2 ImeNameList : = TStringList . Create ; VATE”。Get ImeName ; 返回值 :函数调用成功 ,返回调用前系统使用的键盘布 ImeSelectedIndex : = 1 ; 局 ;调用失败 ,返回 0 。可以同时装载几个不同的键盘布局 ,finalization 但是在某 一 给 定 时 间 只 能 使 用 一 个 键 盘 布 局 。调 用 Get2ImeNameList . Free ; Last Error 函数可以获得更多的错误信息 。end. 3 实现代码 4 应用实例 由于输入法自动切换是大多中文应用系统需要考虑的 在 Delphi 中 新 建 一 个 窗 口 Form1 , 在 其 中 添 加 一 个 问题 ,为提高代码的通用性 ,我们考虑把实现中英文输入法 TComboBox 控件和两组 TEdit 、TMemo 编 辑 控 件 作 为 测 试 控 自动切换的代码作为通用单元进行设计 。代码如下 : 件 。在 Form1 的 OnCreate 事件中写入以下代码 : unit ImeUnit ; for i : = 0 to ImeNameList . Count - 1 do interface ( ) ComboBox1. Items. AddImeNameList . Stringsi ; uses 目的是 把 系 统 当 前 可 以 使 用 的 输 入 法 列 表 显 示 在Windows , Classes , Imm ; ComboBox1 中供 用 户 选 择 。同 时 还 要 在 ComboBox1 的 On2 { 变量说明 } Change 事件中写入 : var ImeSelectedIndex : = ComboBox1. ItemIndex + 1 ; 用于 记录 混凝土 养护记录下载土方回填监理旁站记录免费下载集备记录下载集备记录下载集备记录下载 用户选择的输入法 ,然后在中文录入测试控 ImeNameList : TStringList ; 件 Edit1 、Memo1 的 OnEnter 和 OnExit 事件中分别调用 Chi Ime ImeSelectedIndex : Integer ; 和 EnIme 过程激活 、关闭用户选择的中文输入法 。 { 函数说明 } () 运行测试程序 如图 1,在 ComboBox1 中选择一种中文 procedure Chi Ime ; 输入法 ,然后把鼠标指针移入 Edit1 、Memo1 控件中时 ,程序 procedure EnIme ; implementation 会自动激活选择的中文输入法 ,再把鼠标指针移入 Edit2 、 var Memo2 中时 ,中文输入法又会自动关闭 。也就是说在本例 pList : array1. . 10 of HKL ; 中我们实现了指定中英文输入法的自动切换 。 { 获取输入法列表 } procedure Get ImeName ; var i , HandleCount : Integer ; ImeName : array0. . 29 of char ; begin () HandleCount : = Get KeyboardLayoutList 10 , pList; ImeName : = ″; ImeNameList . Clear ; 图 1 运行测试程序 for i : = 1 to HandleCount do 在使用 Delphi 开发应用系统过程中 ,采用本例同样方 begin 法设置所有需要录入文字的控件 ,即可在整个应用系统中 () ImmGetDescription pList i , ImeName ,29 ; 实现中英文输入法的自动切换 ,从而大大提高数据输入速 () if ImeName = ″then ImeName : = ′英语 美国′; 度 ,方便用户的使用 。( ) ImeNameList . Add ImeName; end ; 5 结束语 end ; 实践证明 ,在有大量数据输入的应用系统中 ,采用上述 { 激活中文输入法 } 指定中英文输入法自动切换技术 ,既可以做到在中英文录 procedure Chi Ime ; 入时不用进行录入法的来回选择 ,还可以做到让用户选择 begin 其最喜欢的中文输入法 ,对用户来讲非常友好 、方便 、快捷 ,() Activate KeyboardLayout pList ImeSelectedIndex , 0 ; end ;{ 激活英文输入法 } 在很大程度上减轻工作量 ,是一种很好的界面形式 。如果 将此输入法的选择方法改编为 Delphi 下的一个通用控件 ,3 飞思 科 技 产 品 研 发 中 心 . Ddelphi7 基 础 编 程 M . 北 在程序开发时 ,就可以更方便地使用了 。京 :电子工业出版社 ,2003. 张增强 . Delphi7 入门与提高实用教程 M . 北京 : 中国 4 参考文献 铁道出版社 ,2003. 1 邓世刚 . Borland C + + Builder 输入法的自动切换 J .5 魏江江 ,李青 ,孙立京 . Delphi 编程百例通 M . 北京 : () 微型电脑应用 ,2000 ,16 7:52 - 53.科学出版社 ,2002. () ( ) 2 本书编写组 . WINDOWS API 函数参考手册 M .北京 :6 美Tom Swan. Delphi 4 实用大全 第一版M . 齐舒 人民邮电出版社 ,2002 :478 - 485创作室 ,译 . 北京 :中国水利电力出版社 ,1999. Automatic s witchover bet ween Chinese and English input method in D EL PHI XU Xiang- yang , CAO Bang- qin ( )Xinyang Vocational and Technical College , Xinyang 464000 , China Abstract :Regarding to the input method switch question caused by the coexistence of Chinese and English data item commonly in Chinese application system , the paper put forward a new clue and method to realize the automatic switchover between Chinese and English input method by using the Windows API function , by a brief demonstration , it displayed the implementation in the practical application system. Key words :Delphi ;API function ;input method ; automatic switchover ()上接第 16 页 - 1 - 1 - 1 - 1 - 1 ( ) ( ) PQ = XV′ XHQ′ Q = XV′ XH,′ ()又10 - 1- 1 - 1 - 1 - 1 - 1 - 1 - 1 ( ) ( ) ( ) ( ) ()Q P=′ Q Q ′H XV′ X= QQ H XV′ X= H XV′ X. 11 ( ) () ( ) 把 10, 11代入 9中 , 可得 3 3 2 2 2 3 2 (β) (β) σσσ(β) σ()Cov = Cov - PQ P-′ PQ P+′PQ P=′ Cov - PQ P.′ 12 H 3 3 (β) (β) 因 PQ P?′0 , 故 Cov ?Cov . H 参考文献 1 王松桂 ,史建红 ,等 1 线性模型引论 M 1 北京 :科学出版社 ,20041 () 2 徐孝磊 ,李红武 1 线性模型参数最小二乘估计唯一性的一个证明 J 1 南阳师范学院学报 ,2006 ,5 3:17 - 181 3 陈希孺 ,王松桂 1 线性模型中的最小二乘法 M 1 上海 :上海科学技术出版社 ,20031 4 张金槐 1 线性模型参数估计及其改进 M 1 长沙 :国防科技大学出版社 ,19991 Study on the para meters estimation of generalized linear model under the linear restriction L I Hong-wu , XU Xiao- lei ( )Department of Mathematics , N anyang Normal University , N anyang 473061 , China Abstract :In this paper ,we use the Lagrangian multiplier method to obtain the least square estimate of the regression parameters on generalized linear model under the linear restriction. Then ,we discuss its property and proof that it excel the unconstrained generalized least square estimate based on covariance principle when we make the array full rank. Key words :Lagrangian multiplier method ;generalized linear model ;the least square estimate ;constrained estimate
本文档为【在DELPHI中实现中英文输入法自动切换】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_353097
暂无简介~
格式:doc
大小:31KB
软件:Word
页数:8
分类:生活休闲
上传时间:2017-10-01
浏览量:227