Windows 10+ATOKの組み合わせで利用した場合、TEdit/TMemoなどのコントロールのImeModeが動作しない
対象となるIDEのバージョン
- RAD Studio/C++Builder/Delphi 10 Seattle以降
問題
10 Seattle以降では、Vcl.ControlsユニットのSetIMEModeメソッドの実装が修正され、内部でSetInputScope関数を呼び出すように変更されました。
これによってWindows 10+MS-IMEの組み合わせで、TEdit/TMemoなどのコントロールを利用したアプリでは、ImeModeが適切に切り替わるようになりました。
ただし、SetIMEModeメソッドの修正の副作用としてWindows 10+ATOKの組み合わせで利用した場合は、IMEのON/OFFは切り替わりますが、ImeModeが機能しません。
解決
ATOKの古いバージョンでは、SetInputScope関数に対応していないため、ImeModeが適切に切り替わりません。
そのため、10 Seattle以降でビルドしたアプリをWindows 10+ATOKの組み合わせで利用する場合は、SetInputScope関数に対応しているATOK 2020以降のバージョンへアップデートしてください。
例えば、 以下のバージョンでは、ImeModeが動作します。
- 「ATOK Passport」(バージョン:31.1.9以降)
- 「ATOK for Windows 一太郎2020 Limited」(バージョン:31.3.9以降)