こんにちは皆様。
表題の件で詰まってしまいまして質問します。
環境
Windows 7 Pro
Delphi 10 Seattle (23.0.20618.2753)
TValueListEditorでセルごとにIMEを制御するコードを組んでいます。
Delphi XE5では正常に動いていたのですが、
Delphi 10でコンパイルしたところうまく動かなくなりました。
ただ、Delphi XE5はアンインストールしてしまったため、
すぐに過去の状態ではテストできない状況です。
Delphi 10のせいではないかもしれません。
ただ、XE5からコードはまったく変えていないのに動かないため、
たぶんDelphi 10のせいであろうと考えています。
具体的にはTValueListEditorのカスタムクラスを作成し、
GetEditTextをoverrideし、その中でSetImeModeを呼び出して
います。
呼び出しは SetImeMode(Self.Handle, imHira); です。
Row,Colごとにかなり細かく指定されていますが、
XE5のときはすべて正常に切り替わりました。
Delphi 10にしたところ、セル上のカーソルを移動していると、
ときどき切り替わったり、まったく切り替わらなかったりと、
よくわからない反応を見せます。
ただ、imCloseだけはまったく効かない状態です。
また、Google IME、MS IMEでも反応・無反応が変化します。
SetImeModeに与えるハンドルを
Self.Handle
Parent.Handle
インプレースエディタのハンドル
などいろいろ試してみましたが、変わらず。
GetEditTextのコードをOnSelectCellなどに移してみても
変化はありませんでした。
Delphi 10からIMEの制御はかなり変わったのでしょうか?
完全に詰まってしまいました。
何かヒントなどがある方は、ぜひご教授ください。
太田剛文
MLホームページ:
http://www.freeml.com/delphi-users
----------------------------------------------------------------------
Powered by freeml --
http://www.freeml.com/ --
------------------------------------------------------[freeml byGMO]--