[delphi-users:4357] Delphi 10でIMEの制御がおかしい

307 views
Skip to first unread message

takefumi-o

unread,
Jan 14, 2016, 4:02:01 AM1/14/16
to delphi...@freeml.com
こんにちは皆様。
表題の件で詰まってしまいまして質問します。

環境
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]--

takefumi-o

unread,
Jan 14, 2016, 4:05:50 AM1/14/16
to delphi...@freeml.com
追記です。

デバッガで調べると、SetImeModeはすべて適正に呼びだされています。
コードが実行されていないわけではありません。


よろしくお願いいたします。
Reply all
Reply to author
Forward
0 new messages