⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 018.htm

📁 Delphi书籍--Delphi网上教程
💻 HTM
📖 第 1 页 / 共 2 页
字号:
<HTML><HEAD><meta http-equiv="Content-Type" content="text/html; charset=GB2312"><TITLE>-->DELPHI专题--API应用-->Delphi下编程实现中文输入法</TITLE>
<META NAME="keywords" CONTENT=" DELPHI专题--API应用 Delphi下编程实现中文输入法">
<META NAME="description" CONTENT=" - DELPHI专题--API应用 - Delphi下编程实现中文输入法">

<style>
<!--
#page {position:absolute; z-index:0; left:0px; top:0px}
.tt3 {font: 9pt/12pt "宋体"}
.tt2 {font: 12pt/15pt "宋体"}
a {text-decoration:none}
a:hover {color: blue;text-decoration:underline}
-->
</style>
</HEAD>
<a href="index2.html">返回</a>

<body text="#000000" aLink=#9900ff link=#006699 vLink=#006699 bgcolor="#FFFFFF" leftmargin="3" topmargin="3" marginheight="3" marginwidth="3">
<TABLE WIDTH="100%" CELLPADDING=10 CELLSPACING=0 BORDER=0>
<TR>

<TD class="tt2" bgcolor="#F5F8F8" width="84%"><center><B><FONT style="FONT-SIZE: 16.5pt" COLOR="#FF6666" FACE="楷体_GB2312">Delphi下编程实现中文输入法</FONT></B></center>
<hr color="#EE9B73" size="1" width="94%">
<BR>
<BR>
<p ALIGN="JUSTIFY"><font lang="ZH-CN" face="宋体" size="2"><span style="font-size: 9pt">---- 
Borland Delphi 以 其 强 大 的 功 能 及 和 高 效 的 可 视 化 开 发 环 境 
为 广 大 程 序 设 计 员 所 青 睐 。 尤 其 是 它 封 装 了WINDOWS API 函 
数, 能 方 便 地 利 用WINDOWS 资 源, 大 大 加 快 了 程 序 开 发 速 
度。 </span></font></p> 
<BR> 
<p ALIGN="JUSTIFY"><font lang="ZH-CN" face="宋体" size="2"><span style="font-size: 9pt">---- 
在 平 时 的 计 算 机 操 作 中, 中 文 输 入 是 不 可 避 免 的。 使 
用 者 可 能 喜 欢 不 同 的 中 文 输 入 法(inputmethod editor, 简 称IME), 
这 就 不 得 不 经 常 点 击 任 务 栏 中 的 中 文 图 标 或 用CTRL+Space,CTRL+Shift 
热 键 切 换, 初 学 者 用 起 来 很 不 方 便。 针 对 这 一 问 题, 可 
以 在 开 发 软 件 时, 在 程 序 中 设 置 用 户 喜 欢 的 中 文 输 入 
法, 方 便 用 户 的 使 用。Delphi 中 只 有 少 数 控 件 如TEdit 支 持IME, 
而 且 该 功 能 不 强, 不 能 在 运 行 时 更 改 输 入 法。 </span></font></p> 
<BR> 
<p ALIGN="JUSTIFY"><font lang="ZH-CN" face="宋体" size="2"><span style="font-size: 9pt">---- 
笔 者 通 过 实 践 和 摸 索, 查 找 了 相 关 的IME 资 料, 利 用 了WINDOWS 
API 函 数, 实 现 了IME 的 功 能。 </span></font></p> 
<BR> 
<p ALIGN="JUSTIFY"><font lang="ZH-CN" face="宋体" size="2"><span style="font-size: 9pt">---- 
常 用 函 数 有: </span></font></p> 
<BR> 
<p ALIGN="JUSTIFY"><font lang="ZH-CN" face="宋体" size="2"><span style="font-size: 9pt">API函数:BOOL 
ImmSimulateHotKey</span></font></p> 
<BR> 
<p ALIGN="JUSTIFY"><font lang="ZH-CN" face="宋体" size="2"><span style="font-size: 9pt">(HWND 
hWnd,DWORD dwHotKeyID);//模拟热键</span></font></p> 
<BR> 
<p ALIGN="JUSTIFY"><font lang="ZH-CN" face="宋体" size="2"><span style="font-size: 9pt">其中Hwnd为程序窗口的句柄,dwHotHKeyID</span></font></p> 
<BR> 
<p ALIGN="JUSTIFY"><font lang="ZH-CN" face="宋体" size="2"><span style="font-size: 9pt">为模拟的热键,若成功则返回True</span></font></p> 
<BR> 
<p ALIGN="JUSTIFY"><font lang="ZH-CN" face="宋体" size="2"><span style="font-size: 9pt">HKL 
GetKeyboardLayout(DWORD dwLayout);</span></font></p> 
<BR> 
<p ALIGN="JUSTIFY"><font lang="ZH-CN" face="宋体" size="2"><span style="font-size: 9pt">//获得当前键盘状态</span></font></p> 
<BR> 
<p ALIGN="JUSTIFY"><font lang="ZH-CN" face="宋体" size="2"><span style="font-size: 9pt">BOOL 
ImmIsIME(HKL hKL);</span></font></p> 
<BR> 
<p ALIGN="JUSTIFY"><font lang="ZH-CN" face="宋体" size="2"><span style="font-size: 9pt">//判断当前是否处于中文输入状态,若是则返回True</span></font></p> 
<BR> 
<p ALIGN="JUSTIFY"><font lang="ZH-CN" face="宋体" size="2"><span style="font-size: 9pt">自定义函数:</span></font></p> 
<BR> 
<p ALIGN="JUSTIFY"><font lang="ZH-CN" face="宋体" size="2"><span style="font-size: 9pt">打开相应输入法:OpenIme(imename:string),</span></font></p> 
<BR> 
<p ALIGN="JUSTIFY"><font lang="ZH-CN" face="宋体" size="2"><span style="font-size: 9pt">例OpenIme('全拼输入法');</span></font></p> 
<BR> 
<p ALIGN="JUSTIFY"><font lang="ZH-CN" face="宋体" size="2"><span style="font-size: 9pt">关闭中文输入法:CloseIme;</span></font></p> 
<BR> 
<p ALIGN="JUSTIFY"><font lang="ZH-CN" face="宋体" size="2"><span style="font-size: 9pt">以下是一个简单的例子,仅起参考作用。</span></font></p> 
<BR> 
<p ALIGN="JUSTIFY"><font lang="ZH-CN" face="宋体" size="2"><span style="font-size: 9pt">使用时uses中加上imm 
</span></font></p> 
<BR> 
<p ALIGN="JUSTIFY"><font lang="ZH-CN" face="宋体" size="2"><span style="font-size: 9pt">具体的实现方法及源代码如下: 
</span></font></p> 
<BR> 
<p ALIGN="JUSTIFY"><font lang="ZH-CN" face="宋体" size="2"><span style="font-size: 9pt">unit 
Unit1;</span></font></p> 
<BR> 
<p ALIGN="JUSTIFY"><font lang="ZH-CN" face="宋体" size="2"><span style="font-size: 9pt">interface</span></font></p> 
<BR> 
<p ALIGN="JUSTIFY"><font lang="ZH-CN" face="宋体" size="2"><span style="font-size: 9pt">uses</span></font></p> 
<BR> 
<p ALIGN="JUSTIFY"><font lang="ZH-CN" face="宋体" size="2"><span style="font-size: 9pt">Windows, 
Messages, SysUtils, Classes,</span></font></p> 
<BR> 
<p ALIGN="JUSTIFY"><font lang="ZH-CN" face="宋体" size="2"><span style="font-size: 9pt">Graphics, 
Controls, Forms, Dialogs,</span></font></p> 
<BR> 
<p ALIGN="JUSTIFY"><font lang="ZH-CN" face="宋体" size="2"><span style="font-size: 9pt">StdCtrls, 
Buttons,imm;</span></font></p> 
<BR> 
<p ALIGN="JUSTIFY"><font lang="ZH-CN" face="宋体" size="2"><span style="font-size: 9pt">type</span></font></p> 
<BR> 
<p ALIGN="JUSTIFY"><font lang="ZH-CN" face="宋体" size="2"><span style="font-size: 9pt">TForm1 
= class(TForm)</span></font></p> 
<BR> 
<p ALIGN="JUSTIFY"><font lang="ZH-CN" face="宋体" size="2"><span style="font-size: 9pt">ComboBox1: 
TComboBox;</span></font></p> 
<BR> 
<p ALIGN="JUSTIFY"><font lang="ZH-CN" face="宋体" size="2"><span style="font-size: 9pt">BitBtn1: 
TBitBtn;</span></font></p> 
<BR> 
<p ALIGN="JUSTIFY"><font lang="ZH-CN" face="宋体" size="2"><span style="font-size: 9pt">BitBtn2: 
TBitBtn;</span></font></p> 
<BR> 
<p ALIGN="JUSTIFY"><font lang="ZH-CN" face="宋体" size="2"><span style="font-size: 9pt">BitBtn3: 
TBitBtn;</span></font></p> 
<BR> 
<p ALIGN="JUSTIFY"><font lang="ZH-CN" face="宋体" size="2"><span style="font-size: 9pt">procedure 
FormShow(Sender: TObject);</span></font></p> 
<BR> 
<p ALIGN="JUSTIFY"><font lang="ZH-CN" face="宋体" size="2"><span style="font-size: 9pt">procedure 
OpenIme(imename:string);</span></font></p> 
<BR> 
<p ALIGN="JUSTIFY"><font lang="ZH-CN" face="宋体" size="2"><span style="font-size: 9pt">procedure 
closeIme;</span></font></p> 
<BR> 
<p ALIGN="JUSTIFY"><font lang="ZH-CN" face="宋体" size="2"><span style="font-size: 9pt">procedure 
ComboBox1Change(Sender: TObject);</span></font></p> 
<BR> 
<p ALIGN="JUSTIFY"><font lang="ZH-CN" face="宋体" size="2"><span style="font-size: 9pt">procedure 
BitBtn1Click(Sender: TObject);</span></font></p> 
<BR> 
<p ALIGN="JUSTIFY"><font lang="ZH-CN" face="宋体" size="2"><span style="font-size: 9pt">procedure 
BitBtn2Click(Sender: TObject);</span></font></p> 
<BR> 
<p ALIGN="JUSTIFY"><font lang="ZH-CN" face="宋体" size="2"><span style="font-size: 9pt">procedure 
BitBtn3Click(Sender: TObject);</span></font></p> 
<BR> 
<p ALIGN="JUSTIFY"><font lang="ZH-CN" face="宋体" size="2"><span style="font-size: 9pt">private</span></font></p> 
<BR> 
<p ALIGN="JUSTIFY"><font lang="ZH-CN" face="宋体" size="2"><span style="font-size: 9pt">{ 
Private declarations }</span></font></p> 
<BR> 
<p ALIGN="JUSTIFY"><font lang="ZH-CN" face="宋体" size="2"><span style="font-size: 9pt">public</span></font></p> 
<BR> 
<p ALIGN="JUSTIFY"><font lang="ZH-CN" face="宋体" size="2"><span style="font-size: 9pt">{ 
Public declarations }</span></font></p> 
<BR> 
<p ALIGN="JUSTIFY"><font lang="ZH-CN" face="宋体" size="2"><span style="font-size: 9pt">end;</span></font></p> 
<BR> 
<p ALIGN="JUSTIFY"><font lang="ZH-CN" face="宋体" size="2"><span style="font-size: 9pt">var</span></font></p> 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -