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

原创 2001年05月09日 10:11:00

  许多Windows应用程序的中西文录入界面中,中西文的录入需要反复切换汉字输入法,这样使用起来非常麻烦,下面来介绍一种比较简便的解决方法。本文的程序设计环境为Delphi Client/Server Suit Ver 3.0(以下简称Delphi 3.0)和中文Windows 95。 <?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

 

  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

 

  编程时,一般把输入西文或以西文为主的元件的ImeMode属性设为缺省值;而把输入中文或以中文为主的元件的ImeMode属性设为ImOpen;ImeName属性值则在程序运行时由用户设定。这个方法的灵活性就在于此。另外,还需要把Edit1.Text、Edit2.Text、Memo1.Lines的值设为空。

 

  (3)在Form1中添加一个标签Label4,设定其属性为:

 

  Caption = 选择最喜欢的输入法

 

  Font.Size=12

 

  Font.Color=红色

 

  (4)在Form1中添加一个下拉组合框ComboBox1,在对象观察器Object Inpector中选择Events选项卡,双击OnDropDown,对此事件进行编程,其代码如下:

 

  ComboBox1.Items.CommaText:=Screen.Imes.CommaText;

 

  上面这个语句可以将中文Windows 95中安装的汉字输入法添加到下拉组合框中,它巧妙地运用了TScreen类的Imes特性,而Imes特性本身又是一个Tstring类,其属性Commatext包含了Windows 95已安装的汉字输入法,可以将其直接赋值给ComboBox1的相应属性。如果直接编辑ComboBox1的属性Items来添加汉字输入法名称,则会在应用程序发布时,因用户机器汉字输入法的不确定性造成应用程序的不通用性。

 

  在对象观察器中双击OnExit事件,对此事件进行编程,代码如下:

 

  Edit1.ImeName:=ComboBox1.Text;

 

  Memo1.ImeName:=ComboBox1.Text;

 

  (5)在Form1中添加一个命令按钮Button1,设置其属性为:

 

  Caption=退出

 

  Font.Size=12

 

  双击此命令按钮,对Click事件进行编程,代码如下:

 

  Close;

 

  至此,整个示例的程序设计过程就完成了,保存此应用程序及表单,再进行编译、运行。

 

  3.汉字输入法的使用

 

  首先在下拉组合框中选择你所喜欢的汉字输入法,将光标移到中文输入编辑框中就会发现所选的汉字输入法已自动出现在屏幕上;再将光标移到西文输入编辑框中,汉字输入法就会自动关闭;如果将光标移到中文多行文本编辑框中,则已选中汉字输入法又自动出现了。

 

  从上面的程序中可以得出,在应用程序的录入界面中,设置一个选择输入法的下拉组合框,并让其控制录入界面中所有可输入项的ImeName属性,既可以做到在中西文录入过程中不必进行录入法的来回切换,还可以做到让用户选择自己最喜欢的汉字输入法,而且这样的录入界面对于用户来说也是非常友好、方便、快捷的。PCC

 

必须用'标识符,但直接用'会出错

tdataset.filter:='somebodyname='+chr(39)+'李*'+chr(39)

用Delphi编写输入法,关于这方面的例程请......

     用delphi编写输入法这方面的资源和例程太少了,我在网上只找到一个,这就是区位输入法delpi版.拼音的呢?五笔的呢?如果这方面的高手不愿提供免费的例程的话,何不出书呢?相信会有不少的读者...
  • ansu123
  • ansu123
  • 2008年01月05日 02:34
  • 259

在Delphi中编程实现中文输入的功能

BorlandDelphi是著名的Borland(现在已和Inprise合并)公司开发的可视化软件开发工具。Delphi被称为第四代编程语言,它具有简单、高效、功能强大的特点,它一直为广大程序设计员所...
  • zyj66666
  • zyj66666
  • 2017年07月10日 09:05
  • 258

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

  • zgqtxwd
  • zgqtxwd
  • 2008年04月30日 19:07
  • 136

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

许多WINDOWS应用程序的中西文录入界面中,中西文的录入需要反复切换汉字输入法,使用起来非常繁琐。笔者在利用DELPHI开发某MIS的过程中,找到了一种比较简捷的解决办法。  本文设计环境为DELP...
  • heyongzhou
  • heyongzhou
  • 2001年08月03日 10:50
  • 1048

Delphi xe6 andriod 编程入门教程demo随书光盘

网上找到的 Delphi xe6 andriod 编程入门  随书光盘代码   Delphi xe6 andriod 编程入门教程demo随书光盘1   http://download.cs...
  • laorenshen
  • laorenshen
  • 2014年12月04日 10:24
  • 5920

Spark入门实战系列--3.Spark编程模型(下)--IDEA搭建及实战

IDEA 全称 IntelliJ IDEA,是java语言开发的集成环境,IntelliJ在业界被公认为最好的java开发工具之一,尤其在智能代码助手、代码自动提示、重构、J2EE支持、Ant、JUn...
  • yirenboy
  • yirenboy
  • 2015年08月17日 09:17
  • 2644

Delphi下深入Windows核心编程

目錄 第1章 DLL与数据共享 1.1 关于DLL 1.1.1 DLL的结构 1.1.2 DLL数据作用范围 1.2 内存映像 1.2.1 创建映像文件 1.2.2 打开映像文件...
  • zhongguoren666
  • zhongguoren666
  • 2011年09月28日 13:25
  • 2587

paip.多维理念 输入法的外码输入理论跟文字输出类型精髓

paip.多维理念 输入法的外码输入理论跟文字输出类型精髓 通常,我们的输入法使用的外码是拼音,但是,这个的用户体验很差.. 应该使用多个外码类型... ##按照词汇来源,有如下...
  • attilax
  • attilax
  • 2014年04月28日 00:14
  • 960

Android平台上的高性能编程

由于计算机视觉方面的大部分算法不仅需要很多计算资源,也需要频繁地访问内存,因此很多在PC上可以实时跑起来且效果良好的方案在移植到Android这样的移动平台上往往表现很差。本文总结下自己这些天对And...
  • shunli0521
  • shunli0521
  • 2016年09月03日 13:07
  • 853

Websphere编程之路 《MQ编程 For Delphi》 --MQ编程初探

/*转载请保留版权:作者:雷霖 QQ:64607646 E-Mail:ralinlei@gmail.comBlog:blog.csdn.net/rubi*/1,            MQ编程概述IB...
  • Rubi
  • Rubi
  • 2007年04月30日 14:06
  • 4654
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Delphi下汉字输入法的编程及使用
举报原因:
原因补充:

(最多只允许输入30个字)