Windows10におけるTGrid セル文字入力の挙動
対象となるWindows バージョン
- Windows 10 Fall Creators Update(1709)以降
対象となるVCLコンポーネント
- TStringGrid、TDBGridなどのTGridから派生しているクラス
問題
IMEを有効(ローマ字、あるいはかな文字入力)にした状態で、TGridの行編集を行うためにセルを選択し、文字を入力すると、正しく文字変換されない症状が発生します。
例えば、キーボードで ローマ字入力を行うと、「K」「A」と入力した時に「か」へ変換されず、「kあ」となります。
この症状は、Delphi/C++Builderでビルドしたアプリケーション以外でも類似した問題が発生しています。
なお、Windows 10 Fall Creators Update(1709)以降のバージョンで
こちらのブログで説明しているIMEの挙動が変更されていることに起因します。
上記の理由によって未確定文字列がインプレースエディタに引き継がれない不具合が発生しますが、 バージョン10.4現在のTGridの実装では、上記のIME挙動に対応しておりません。
(5/24 追記)
本件は、マイクロソフト社のWindowsのアップデートによって修正済みです。なお、Windows 10(20H2)以降のバージョンで、以下のどちらのIMEを選択した場合でも改善されております。
・新しいMicrosoft IME
・以前のバージョンのMicrosoft IME (詳しくはこちらを参照ください)
解決
現状の回避策として以下のいずれかの方法が有効です。
- セルをクリックし、InplaceEditorが表示された状態で入力
- OptionsのAlwaysShowEditorプロパティをtrueに設定
(5/24 追記)
Windows 10(20H2)以降のバージョンへアップデートしてください