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

原创 2001年08月03日 10:50:00

许多WINDOWS应用程序的中西文录入界面中,中西文的录入需要反复切换汉字输入法,使用起来非常繁琐。笔者在利用DELPHI开发某MIS的过程中,找到了一种比较简捷的解决办法。

  本文设计环境为DELPHI CLIENT/SERVER SUIT VER3.0(以下简称DELPHI3.0),中文WINDOWS’95。

  一、DELPHI3.0下Imename 、Imemode属性

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

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

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

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

   ImDontCare 表示若输入法处于关闭状态,则打开最近一次

   使用过的输入法。

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

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

  二、DELPHI下汉字输入法的编程

  在DELPHI3.0中,中西文录入界面中牵涉输入的元件都具有Imename、Imemode属性。在设计录入界面表单时,对其中每一元件这二种属性赋值,就可以在元件获得焦点时,系统自动打开或关闭你所设定的汉字输入法。但这种编程方法,对用户来说一点灵活性也没有,若系统所设定的输入法不是其所擅长的,他们只好再通过WINDOWS’95的输入法选择器重新进行选择。

  笔者通过在Form下放置一标签及下拉组合框,比较灵活的解决了这个问题,示例中的Forma共放置了四个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中选择事件列EVENT,双击OnDropDown,对此事件编程,写入以下代码:

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

  以便将中文 WINDOWS’95中已安装的汉字输入法添加到下拉组合框中,此处巧妙地利用了TSCREEN类的IMES特性,而IMES特性本身又是一个TSTRING类,其属性Commatext 包含了Windows’95已安装的汉字输入法,将其直接赋值给ComboBox1的相应属性。否则,如果直接编辑ComboBox1的属性Items,添加汉字输入法名称,会在应用程序发布时,因用户机器汉字输入法的不确定性,造成应用程序的不通用。

  5、再在对象观察器中双击OnExit事件,写入以下代码:

   Edit1.Imename:=ComboBox1.Text;

   Memo1.Imename:=ComboBox1.Text;

   6、 在Form1中添加一命令按钮Button1,设置其属性:

   Caption=退 出

   Font.Size=12

   双击此命令按钮,对其Click事件编程,写入以下程序:

   Close;

   7、整个示例程序设计过程完成,保存此应用程序及表单,此时编译、运行,其界面如下:
  194056_16667.jpg

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


  三、结束语

   从上面的程序代码可以出,在应用程序的录入界面中,设置一输入法选择下拉组合框,并让其控制录入界面中所有可输入项的Imename属性,既可以做到在中西文录入时不用进行录入法的来回选择,更可以做到让用户选择其最喜欢的汉字输入法,录入界面对用户来讲非常友好、方便、快捷。

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

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

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

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

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

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

Android平台上的高性能编程

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

WinHttp编程一般过程中会使用到的方法

WinHttpOpen WinHttpConnect WinHttpOpenRequest WinHttpAddRequestHeaders WinHttpSendRequest ...
  • thanklife
  • thanklife
  • 2017年04月28日 14:26
  • 781

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
  • 4662

delphi下的接口编程学习笔记

Delphi下的接口编程     Delphi下的接口编程学习笔记   1.1  ...
  • rocklee
  • rocklee
  • 2015年09月22日 21:12
  • 1467

Delphi使用SDK写最小的程序

用Delphi产生一个最小的可执行程序 曾经在网上看到有人说Delphi能够产生大小只有16k的Win32应用程序,而我自己曾经编写过的这种可执行文件大小则是在17k左右,因而我一度猜想Delphi恐...
  • suiyunonghen
  • suiyunonghen
  • 2008年06月02日 00:04
  • 4550

Windows 输入法编程 (上)

第一章 Windows9x系统下汉字输入法的基本原理   Windows系统下汉字输入法实际上是将输入的标准ascii字符串按照一定的编码规则转换为汉字或汉字串,进入到目的地。由于应用程序各不相同,用...
  • dengting
  • dengting
  • 2002年08月17日 10:12
  • 11660

电子书下载:Delphi模式编程

下载:http://www.400gb.com/file/54681303
  • MaxWoods
  • MaxWoods
  • 2014年01月17日 20:58
  • 2004
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:DELPHI下汉字输入法的编程及使用
举报原因:
原因补充:

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