Shinyaです。いつもお世話になっております。
今回ComboBoxの挙動についてわからない部分が出てきましたのでご質問させて頂きます。
Form上にMemoとComboBoxを貼り付けます。
ComboBoxのImeModeを「ImHira」に変更します。
その状態でMemoのOnExitに
procedure TForm1.Memo1Exit(Sender: TObject);
begin
Showmessage('Exit');
end;
と記述しています。
この状態からマウスでComboBoxをクリックすると「Exit」と
メッセージボックスが出てフォーカスがComboBoxに移りますが
ここでComboBoxに漢字を入力すると文字化けしてしまうのです。
Tabキーなどで移動した場合は正常に入力できます。
私の知識ではこの原因がわからず識者の方にご回答を頂きたく
投稿させていただきました。
よろしくお願い致します。
環境は
Delphi6 Professional
WindowsXP Professional
です。
AutoCompleteプロパティをFalseに設定しておくと回避できるのではないでしょうか。
このプロパティはデフォルトがTrueになっていますが、2バイト文字に対応していませんので、
タイミングによっては文字化けを発生させるようです。
ふぐちゃん様、ご回答ありがとうございます。
ご指摘通りAutoCompleteをFalseにしてみましたが現象は
変わりませんでした。
Tabなどで移動した時には現象は発生せず、マウスクリックの
時のみ発生するようです。
やはりタイミングの問題なのでしょうか?
OnExitでダイアログを表示するのはさけた方がよろしいかと。
すみません、この場合AutoCompleteプロパティは無関係でした。
Delphi-MLに情報があるようです。
http://www2.big.or.jp/~osamu/Delphi/delphi-browse.cgi?index=068420
http://www2.big.or.jp/~osamu/Delphi/delphi-browse.cgi?index=073216
にしのさんが書いておられるように、OnExitでダイアログを表示するのは
避けたほうがよろしいでしょう。
にしの様、ふぐちゃん様ご回答ありがとうございます。
OnExitでダイアログを表示するとこんな弊害があるのですね。
大変勉強になりました。ありがとうございました。
ツイート | ![]() |