上一篇 | 下一篇

Delphi下编程实现中文输入法

发布: 2008-6-26 20:23 | 作者: admin | 来源: | 查看: 27次

width="84%">Delphi下编程实现中文输入法

江 苏 省 电 信 传 输 局

----

Borland Delphi 以 其 强 大 的 功 能 及 和 高 效 的 可 视 化 开 发 环 境

为 广 大 程 序 设 计 员 所 青 睐 。 尤 其 是 它 封 装 了WINDOWS API 函

数, 能 方 便 地 利 用WINDOWS 资 源, 大 大 加 快 了 程 序 开 发 速

度。

----

在 平 时 的 计 算 机 操 作 中, 中 文 输 入 是 不 可 避 免 的。 使

用 者 可 能 喜 欢 不 同 的 中 文 输 入 法(inputmethod editor, 简 称IME),

这 就 不 得 不 经 常 点 击 任 务 栏 中 的 中 文 图 标 或 用CTRL+Space,CTRL+Shift

热 键 切 换, 初 学 者 用 起 来 很 不 方 便。 针 对 这 一 问 题, 可

以 在 开 发 软 件 时, 在 程 序 中 设 置 用 户 喜 欢 的 中 文 输 入

法, 方 便 用 户 的 使 用。Delphi 中 只 有 少 数 控 件 如TEdit 支 持IME,

而 且 该 功 能 不 强, 不 能 在 运 行 时 更 改 输 入 法。

----

笔 者 通 过 实 践 和 摸 索, 查 找 了 相 关 的IME 资 料, 利 用 了WINDOWS

API 函 数, 实 现 了IME 的 功 能。

----

常 用 函 数 有:

API函数:BOOL

ImmSimulateHotKey

(HWND

hWnd,DWORD dwHotKeyID);//模拟热键

其中Hwnd为程序窗口的句柄,dwHotHKeyID

为模拟的热键,若成功则返回True

HKL

GetKeyboardLayout(DWORD dwLayout);

//获得当前键盘状态

BOOL

ImmIsIME(HKL hKL);

//判断当前是否处于中文输入状态,若是则返回True

自定义函数:

打开相应输入法:OpenIme(imename:string),

例OpenIme('全拼输入法');

关闭中文输入法:CloseIme;

以下是一个简单的例子,仅起参考作用。

使用时uses中加上imm

具体的实现方法及源代码如下:

unit

Unit1;

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;

procedure

FormShow(Sender: TObject);

procedure

OpenIme(imename:string);

procedure

closeIme;

procedure

ComboBox1Change(Sender: TObject);

procedure

BitBtn1Click(Sender: TObject);

procedure

BitBtn2Click(Sender: TObject);

字号: | 推荐给好友

31/3123>

评分:0

我来说两句

网络推荐