Delphi下汉字输入法的编程及使用

许多Windows应用程序的中西文录入界面中,中西文的录入需要反复切换汉字输入法,这样使用起来非常麻烦,下面来介绍一种比较简便的解决方法。本文的程序设计环境为Delphi Client/Server Suit Ver 3.0(以下简称Delphi 3.0)和中文Windows 95。

1.Delphi下的Imename、Imemode属性

在Delphi 3.0中的Tedit、Tmemo、TmaskEdit等编辑元件在应用程序中经常使用,这三种元件都具有ImeName、ImeMode属性。其中ImeName属性是输入法名称,在对象观察器中对应一个包括当前系统中所有汉字输入法的下拉组合框;ImeMode属性是输入法模式,在对象观察器中也对应一个下拉组合框,组合框中包含imClose、imOpen、imChinese、imDontCare、imSAlpha、imAlpha六项内容。

imClose 表示输入法处于关闭状态;

ImOpen 表示输入法处于打开状态;

ImChinese 表示处于中文输入法状态;

ImDontCare 表示若输入法处于关闭状态则打开最近一次使用过的输入法;

ImSAlpha 表示输入处于半角状态;

ImAlpha 表示输入处于全角状态。

2.Delphi下汉字输入法的编程

在Delphi 3.0中,中西文录入界面中涉及到的输入元件都具有ImeName、ImeMode属性。在设计录入界面表单时,对其中每一个元件的这两种属性赋值,系统就可以在元件获得焦点时自动打开或关闭所设定的汉字输入法。但是对于用户来说,这种编程方法一点灵活性也没有。若系统所设定的输入法不是用户所喜欢的,那么只好再通过Windows 95的输入法选择器重新选择。其实,通过在Form下放置一个标签及一个下拉组合框的方法就可以灵活地解决这个问题了。本文示例的Form中共放置了四个Label、两个Edit、一个ComboBox、一个Memo及一个Button,下面对这个示例作个说明。

(1)在Delphi中选择File | New Application菜单项生成一个新的应用程序,设定新窗体Form1的属性为:

Caption=输入法编程示例;

(2)在Form1中添加标签Label1、Label2、Label3及编辑框Edit1、Edit2、Memo1,设定其属性为:

Label1.Caption=中文输入编辑框

Label1.Font.Size=12

Label2.Caption= 西文输入编辑框

Label2.Font.Size=12

Label3.Caption= 中文多行文本编辑器

Label3.Font.Size=12

Edit1.ImeMode=ImOpen

Edit2.ImeMode=ImDontCare(缺省值)

Memo1.ImeMode=ImOpen

时间: 2016-10-31

Delphi下汉字输入法的编程及使用的相关文章

018_《Delphi下深入Windows核心编程》

<Delphi下深入Windows核心编程> Delphi 教程 系列书籍 (018) <Delphi下深入Windows核心编程> 网友(邦)整理 EMail: shuaihj@163.com 下载地址: Part1 Part2 Part3     书名: Delphi下深入Windows核心编程 作者: 飞思科技产品研发中心 出版社: 电子工业出版社 书号: 7505384023 出版日期:2003年1月 开本: 787*1092 1/16 页码: 525 版次: 2003年1

Delphi下用Windows API创建窗体

// Delphi 下调用Windows API 创建窗体.// program delphi; uses windows, messages; const hellostr='Hello World!'; {$R delphi.res} //窗口消息处理函数. function MyWinProc(hWnd:THandle;uMsg:UINT;wParam,lParam:Cardinal):Cardinal;exp ort;stdcall; var hdca,hdcb:THandle; //设

手机汉字输入法欲立国家标准

国人使用手机有两大特点,一是爱换机,一是爱发短信.来自国家信息产业部的统计显示,目前我国手机用户已经超过了4亿多,2005年共发短信3000多亿条.而其中,数字键盘汉字输入法已成为我国1/3人口的日常基础工具. 然而,一个容易被人忽略的事实是,作为最基本的功能,我国90%以上的手机嵌入的汉字输入法却使用的是国外技术和专利,并且每年要为此支付数亿元的专利费. 12月15日,广东省信息产业厅召集移动运营.手机制造以及信息家电.数据查询等相关企业,就广东国笔科技有限公司负责起草的国家标准<数字键盘汉字

《精通QTP——自动化测试技术领航》—第1章1.6节对象库(下)之进阶编程篇

1.6 对象库(下)之进阶编程篇 精通QTP--自动化测试技术领航 阶段要点 掌握手写代码的3种方式. 明确测试对象(TO)与运行时对象(RO)的区别. 4种操作对象封装属性的方法. 你也可以是一名魔术师.黑客. 几种常见的QTP无法识别或识别错误的原因. 1.6.1 引言 在对象库上篇这个章节中,相信读者已经对对象库的使用以及其他各个方面有了一个全面的了解.那么从现在开始,作者将引领读者开始基于对象库编程的学习,从而掌握对象库编程的知识与技巧.读者如果觉得在对象库上篇中还有不能够完全掌握的地方

032_《Delphi下用Intraweb开发WEB程序应用实战(第二版)》

<Delphi下用Intraweb开发WEB程序应用实战第二版> Delphi 教程 系列书籍 (032) <Delphi下用Intraweb开发WEB程序应用实战第二版> 网友(邦)整理 EMail: shuaihj@163.com 下载地址: Pdf 作 者:高勇 内容简介 IntraWeb是Delphi自带的一套Web开发框架,它由Atozed Software公司(http://www.atozedsoftware.com)在2002年制作,并完美的植入Delphi7中.I

Lua下基本的网络编程示例

  这篇文章主要介绍了Lua下基本的网络编程示例,包括简单的服务器的搭建和相关web组件的介绍等,需要的朋友可以参考下 Lua是高度灵活的语言,它往往是在多个平台,包括Web应用程序中使用.成立2004年的Kepler社区提供Lua的Web组件开放源码. 虽然,也有使用Lua已经开发了其他的web框架,我们将主要集中在Kepler社区提供的组件. 应用程序和框架 Orbit 是一个lua的MVC Web框架,它是基于WSAPI. WSAPI是从Lua的Web应用程序抽象的Web主机服务器,是基于

win7系统下汉字乱码怎么解决

  由用户在win7 64位旗舰版下载安装之后就发现,自己在安装其他程序的时候就会出现中文乱码的现象,这是怎么一回事呢?今天小编就来给大家介绍下win7系统下汉字乱码怎么解决. 步骤一:打开win7系统的运行窗口,然后输入regedit的指令回车打开win7系统的注册表编辑器. 步骤二:在win7系统的注册表编辑器里面,我们按照这个顺序"HKEY_LOCAL_MACHINE System CurrentControlSet Control FontAssoc"打开所需要编辑的Aossi

linux下C语言多线程编程实例

linux下C语言多线程编程实例 学东西,往往实例才是最让人感兴趣的,老是学基础理论,不动手,感觉没有成就感,呵呵. 下面先来一个实例.我们通过创建两个线程来实现对一个数的递加. 或许这个实例没有实际运用的价值,但是稍微改动一下,我们就可以用到其他地方去拉. 下面是我们的代码: /*thread_example.c : c multiple thread programming in linux *author : falcon *E-mail : tunzhj03@st.lzu.edu.cn

linux 下为什么不用IDE编程?

问题描述 linux 下为什么不用IDE编程? 很多前辈都是用vi编辑器+gdb调试器+gcc编译器编程,linux下也有如code blocks的编译器,也很方便,为什么仍用上述组合?有什么优势? 解决方案 很多linux服务程序,都不是在本地编辑并编译,而是通过远程到服务器上进行编辑源代码并编译的.这时候一般都会用telnet/ssh而很少用x,因此无法使用IDE. 解决方案二: 习惯罢了,Linux下大家都欢喜命令行,而不是 IDE. 解决方案三: Linux主要用作服务器,服务器一般不用