
由於微軟內附的螢幕小鍵盤還真的有點小,加上POS餐飲系統開發需要螢幕小鍵盤,所以乾脆自己寫一個"大"鍵盤。
裡面需要做輸入法的切換,所以分享給大家。
需要Uses到Winapi.imm;
Uses Winapi.Imm;
1取得所有的輸入法名稱
var i: integer; begin for i := 0 to screen.imes.count - 1 do begin ComBoBox1.Items.Add(screen.Imes.strings[i]); end; end;
2切換到輸入法
var
I: integer;
myhkl: hkl;
begin
if ComboBox1.Text <> '' then
begin
if Screen.Imes.Count <> 0 then
begin
I := screen.Imes.indexof(ComboBox1.Text);
if I >= 0 then
myhkl := hkl(screen.Imes.objects[i]);
activatekeyboardlayout(myhkl, KLF_ACTIVATE);
end;
end;
end;3關閉輸入法
begin ImmSimulateHotKey(Handle, IME_THOTKEY_IME_NONIME_TOGGLE); ComBobox1.Text := ''; end;
4取得目前輸入法
var
IMEHandle: THandle;
Idx: Integer;
IMEName: String;
begin
IMEName := '';
ImeHandle := GetKeyBoardLayOut(0);
for Idx := 0 to Pred(Screen.Imes.Count) do
if HKL(Screen.Imes.Objects[Idx]) = ImeHandle then
IMEName :=Screen.Imes[Idx];
ShowMessage(IMEName);
end;
Copyright © 2014 DelphiW.com 开发 源码 文档 技巧 All Rights Reserved
晋ICP备14006235号-8 晋公网安备 14108102000087号
执行时间: 0.29590582847595 seconds