ComboBoxについて

解決


Shinya  2004-08-12 18:05:51  No: 10378

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
です。


ふぐちゃん  2004-08-12 19:50:41  No: 10379

AutoCompleteプロパティをFalseに設定しておくと回避できるのではないでしょうか。
このプロパティはデフォルトがTrueになっていますが、2バイト文字に対応していませんので、
タイミングによっては文字化けを発生させるようです。


Shinya  2004-08-13 18:21:54  No: 10380

ふぐちゃん様、ご回答ありがとうございます。

ご指摘通りAutoCompleteをFalseにしてみましたが現象は
変わりませんでした。
Tabなどで移動した時には現象は発生せず、マウスクリックの
時のみ発生するようです。
やはりタイミングの問題なのでしょうか?


にしの  2004-08-13 19:07:23  No: 10381

OnExitでダイアログを表示するのはさけた方がよろしいかと。


ふぐちゃん  2004-08-14 01:24:44  No: 10382

すみません、この場合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でダイアログを表示するのは
避けたほうがよろしいでしょう。


Shinya  2004-08-14 18:41:39  No: 10383

にしの様、ふぐちゃん様ご回答ありがとうございます。

OnExitでダイアログを表示するとこんな弊害があるのですね。
大変勉強になりました。ありがとうございました。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加