变态重口极致另类在线-波多久久夜色精品国产-波多野结衣在线观看一区-波多野结衣在线观看一区二区-污污的网站免费阅读-污污视频网址

軟件首頁(yè) |  文章首頁(yè)
最新更新 軟件分類 設(shè)為首頁(yè) 加入收藏 聯(lián)系我們
當(dāng)前位置:首頁(yè)文章首頁(yè) IT學(xué)院 Delphi

Delphi下編程實(shí)現(xiàn)中文輸入

作者:東坡下載  來(lái)源:uzzf  發(fā)布時(shí)間:2010-10-14 9:56:32  點(diǎn)擊:

      BorlandDelphi以其強(qiáng)大的功能及和高效的可 視化開發(fā)環(huán)境為廣大程序設(shè)計(jì)員所青睞。尤其是它封裝了WINDOWSAPI函數(shù),能方便地利 用WINDOWS資源,大大加快了程序開發(fā)速度。
  在平時(shí)的計(jì)算機(jī)操作中,中文輸入是不可避免的。 使用者可能喜歡不同的中文輸入法(inputmethodeditor,簡(jiǎn)稱IME),這就不得不經(jīng)常點(diǎn)擊 任務(wù)欄中的中文圖標(biāo)或用CTRL+Space,CTRL+Shift熱鍵切換,初學(xué)者用起來(lái)很不方便。針對(duì) 這一問(wèn)題,可以在開發(fā)軟件時(shí),在程序中設(shè)置用戶喜歡的中文輸入法,方便用戶的使用。Delphi 中只有少數(shù)控件如TEdit支持IME,而且該功能不強(qiáng),不能在運(yùn)行時(shí)更改輸入法。

  筆者通過(guò)實(shí)踐和摸索,查找了相關(guān)的IME資料,利 用了WINDOWSAPI函數(shù),實(shí)現(xiàn)了IME的功能。
  常用函數(shù)有:
API函數(shù):BOOLImmSimulateHotKey
(HWNDhWnd,DWORDdwHotKeyID);//模擬熱鍵
其中Hwnd為程序窗口的句柄,dwHotHKeyID
為模擬的熱鍵,若成功則返回True

HKLGetKeyboardLayout(DWORDdwLayout);
//獲得當(dāng)前鍵盤狀態(tài)

BOOLImmIsIME(HKLhKL);
//判斷當(dāng)前是否處于中文輸入狀態(tài),若是則返回True
自定義函數(shù):
打開相應(yīng)輸入法:OpenIme(imename:string),
例OpenIme(全拼輸入法);
關(guān)閉中文輸入法:CloseIme;

以下是一個(gè)簡(jiǎn)單的例子,僅起參考作用。

使用時(shí)uses中加上imm

具體的實(shí)現(xiàn)方法及源代碼如下:
unitUnit1;

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;
procedureFormShow(Sender:TObject);
procedureOpenIme(imename:string);
procedurecloseIme;
procedureComboBox1Change(Sender:TObject);
procedureBitBtn1Click(Sender:TObject);
procedureBitBtn2Click(Sender:TObject);
procedureBitBtn3Click(Sender:TObject);

private
{Privatedeclarations}
public
{Publicdeclarations}
end;

var
Form1:TForm1;

implementation

{$R*.DFM}

procedureTForm1.FormShow(Sender:TObject);
var
j:integer;
begin
forj:=0toscreen.imes.count-1do
begin
ComBoBox1.Items.Add(screen.Imes.strings[j]);
//獲取系統(tǒng)中已安裝的中文輸入法
end;
end;
procedureTform1.OpenIme(imename:string);
var
I:integer;
myhkl:hkl;
begin
ifImeName<>then
begin
ifScreen.Imes.Count<>0then
begin
I:=scr .Imes.indexof(imename);
ifI>=0then
myhkl:=hkl(screen.Imes.objects[i]);
activatekeyboardlayout(myhkl,
KLF_ACTIVATE);//設(shè)置相應(yīng)的輸入法
end;
end;
end;

procedureTForm1.closeime;
var
myhkl:hkl;
begin
myhkl:=GetKeyBoardLayOut(0);
ifImmIsIME(myhkl)then
//判斷是否在中文狀態(tài),若是則關(guān)閉它
immsimulateHotkey(handle,
IME_CHotKey_IME_NonIME_Toggle);
end;
procedureTForm1.ComboBox1Change(Sender:TObject);
begin
OpenIme(ComboBox1.Text);
end;
procedureTForm1.BitBtn1Click(Sender:TObject);
begin
immsimulateHotkey(handle,
IME_CHotKey_shape_Toggle);//切換半角和全角模式
end;
procedureTForm1.BitBtn2Click(Sender:TObject);
begin
immsimulateHotkey(handle,
IME_CHotKey_symbol_Toggle);
//切換中文標(biāo)點(diǎn)模式和英文標(biāo)點(diǎn)模式
end;
procedureTForm1.BitBtn3Click(Sender:TObject);
begin
closeime;
end;
end.

文章評(píng)論

欄目導(dǎo)航

本類推薦文章

關(guān)于本站 | 網(wǎng)站幫助 | 廣告合作 | 下載聲明 | 友情連接 | 網(wǎng)站地圖
Copyright © 20098-2010 uzzf下載站. All Rights Reserved .
主站蜘蛛池模板: 亚洲欧美日韩在线一区二区三区 | 国产成人国产在线观看入口 | 天天射夜夜骑 | 精品视频69v精品视频 | 一本一道dvd在线播放器 | 免费看日b视频 | 久久国产欧美日韩精品免费 | 国产一区二区久久精品 | 成人网18免费看 | 国产高清av在线播放 | 日本一区二区免费在线 | a级毛片毛片免费观看永久 a级毛片黄色 | 欧美一级专区免费大片俄罗斯 | 毛片网站在线看 | 免费在线看黄网址 | 亚洲欧美日韩天堂 | 天堂网一区 | 成年轻人网站色 免费看 | 亚洲精品人成无码中文毛片 | 午夜视频国语 | 香蕉视频网址 | 免费羞羞网站视频 | 日本韩国欧美在线观看 | a亚洲天堂 | 青草草在线观看 | 在线播放精品视频 | 国产成人精品视频免费 | 亚洲综合第一欧美日韩中文 | 521香蕉视频 | 国产中日韩一区二区三区 | 日韩毛片免费看 | 欧美在线一区二区三区 | 午夜久久免影院欧洲 | 国产伦久视频免费观看视频 | 污视频网站在线观看免费 | 99精彩视频| 欧美视频在线免费看 | 99在线视频精品 | 亚州中文字幕 | 中文在线观看永久免费 | 久久精品欧美日韩精品 |