免费体验120秒视频_榴莲榴莲榴莲榴莲官网_2021国产麻豆剧果冻传媒入口_一二三四视频社区在线
東坡下載:內容最豐富最安全的下載站!

首頁編程開發Delphi → Delphi下編程實現中文輸入

Delphi下編程實現中文輸入

相關文章發表評論 來源:本站時間:2010/10/14 9:56:32字體大小:A-A+

更多

作者:東坡下載點擊:1815次評論:0次標簽:

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

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

HKLGetKeyboardLayout(DWORDdwLayout);
//獲得當前鍵盤狀態

BOOLImmIsIME(HKLhKL);
//判斷當前是否處于中文輸入狀態,若是則返回True
自定義函數:
打開相應輸入法:OpenIme(imename:string),
例OpenIme(全拼輸入法);
關閉中文輸入法:CloseIme;

以下是一個簡單的例子,僅起參考作用。

使用時uses中加上imm

具體的實現方法及源代碼如下:
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]);
//獲取系統中已安裝的中文輸入法
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);//設置相應的輸入法
end;
end;
end;

procedureTForm1.closeime;
var
myhkl:hkl;
begin
myhkl:=GetKeyBoardLayOut(0);
ifImmIsIME(myhkl)then
//判斷是否在中文狀態,若是則關閉它
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);
//切換中文標點模式和英文標點模式
end;
procedureTForm1.BitBtn3Click(Sender:TObject);
begin
closeime;
end;
end.

相關評論

閱讀本文后您有什么感想? 已有 人給出評價!

  • 2791 喜歡喜歡
  • 2101 頂
  • 800 難過難過
  • 1219 囧
  • 4049 圍觀圍觀
  • 5602 無聊無聊
熱門評論
最新評論
昵稱:
表情: 高興 可 汗 我不要 害羞 好 下下下 送花 屎 親親
字數: 0/500 (您的評論需要經過審核才能顯示)

本類常用軟件

免费体验120秒视频_榴莲榴莲榴莲榴莲官网_2021国产麻豆剧果冻传媒入口_一二三四视频社区在线
主站蜘蛛池模板: 69国产成人精品午夜福中文| 欧美亚洲另类热图| 国产操逼视频| 中文字幕无码日韩专区免费| 成人免费ā片在线观看| 精品国产一区二区三区2021| 国产精品无码久久久久| 亚洲av永久无码精品秋霞电影影院| 国产真实乱子伦精品| 免费无码成人AV在线播放不卡| 欧洲女人牲交性开放视频| 啊灬啊灬啊灬快灬高潮少妇| 不卡视频免费在线观看| 黄色三集片| 欧美黄三级在线观看| 级毛片| 8888四色奇米在线观看不卡| 人人妻人人狠人人爽| 亚洲AV无码国产精品色| 国产aⅴ激情无码久久| 日韩精品视频在线观看免费| 18女人毛片大全| 一级影院| 19日本人xxxxwww| 欧美无玛| 一级毛片aa| 中国pron| 周妍希美乳三点尽露四季图片 | 四虎国产精品免费久久久| 亚洲AV无码乱码在线观看代蜜桃| 亚洲av最新在线观看网址| 亚洲精品NV久久久久久久久久 | 大胖子h粗污| 久青草中文字幕精品视频| 日本精品影院| 欧美人与动性xxxxx杂性| 日本妈妈xxxxx| 凹凸导航第一福利| 欧美日韩中文国产一区| 天天干天天射天天操| 久久亚洲精品成人av无码网站|