そして、MS-IME と ATOK で違う動作をさせたいなーという事が、すごっく希にあります。
そんなとき、Screen.Imes や Screen.DefaultIme で IME の名前を取れば、ATOK かそうでないかが見分けられます。
たとえば、次のような関数で ATOK かどうかを見分けられます。
function IsATOK: Boolean;beginResult := (Screen.DefaultIme.IndexOf('ATOK') > -1);end;
また、Screen.Imes.Objects[] プロパティには「入力ロケール識別子」(旧名:キーボードレイアウト)が入っています。 あるエディットコントロールでは、この識別子、また別の時には別の識別子、を指定して ActiveKeyboardLayout API を呼び出して、IME を指定したりすることもできます。
(Screen.DefaultKbLayout というデフォルトの入力ロケール識別子を返すプロパティもあります。)
0 件のコメント:
コメントを投稿