コンボボックスでキャレットの色をなくしたい

解決


mai  2002-11-10 21:06:33  No: 2039

コンボボックスでリストから目的の項目を選んだ時に、キャレットまでの部分
が青く表示されますよね。(解るかな・・・)
当然、最初に表示されるitemIndex[-1]の部分も、文字列を設定すると青色に
表示されます。

これを青くならないようにはできないものでしょうか?。
プロパティとか随分探してみましたが、やりかたが発見できません。
よろしくお願いいたします。


mai  2002-11-12 16:22:00  No: 2040

御回答が得られなくて寂しいです。(TT)
質問の仕方が悪いのかなぁ?。

再度質問です。
コンボボックスでリスト表示された部分がカーソルを持っていくまでの
間、青く表示(点滅?)さるのをなくしたいです。
やり方をご存知の方、ぜひ御教授をお願い致します。


にしの  2002-11-12 18:12:30  No: 2041

いや、簡単に出来ると思って試してみたんですが、なかなかうまくいかなくて…。
TComboBoxの親クラスである、TCustomComboBoxには、EditHandleという、TComboBox中のTEdit部分にあたるハンドルを持っています。
ここに対して、EM_SETSELメッセージを投げてやればうまくいく…と思ってやってみたんですが、うまくいきませんでした。


mai  2002-11-12 18:22:56  No: 2042

にしのさん。ありがとうございます。
そんなに難しい事だったんですね。
プロパティ設定のどこかにあるか、簡単なルーチン(APIを使わないレベル)
の追加で実現できるかと思ってました。

>御回答が得られなくて寂しいです。(TT)
>質問の仕方が悪いのかなぁ?。
失礼な書き込み。すみませんでした。


にしの  2002-11-12 19:38:23  No: 2043

一応できました。
フォーカスを受けたときと、値が変更されたときに右に移動させるだけです。
ただし、ComboBoxに文字を入力するとかなり変です。

キャレット位置にマウスクリックさせるというのも考えましたが、うまく動きませんでした。

procedure TForm1.ComboBox1Enter(Sender: TObject);
begin
  ComboBox1.SetFocus;
  keybd_event(VK_RIGHT,0,0,0);
  keybd_event(VK_RIGHT,0,KEYEVENTF_KEYUP,0);
end;

procedure TForm1.ComboBox1Change(Sender: TObject);
begin
  ComboBox1.SetFocus;
  keybd_event(VK_RIGHT,0,0,0);
  keybd_event(VK_RIGHT,0,KEYEVENTF_KEYUP,0);
end;


mai  2002-11-12 21:38:38  No: 2044

にしのさん。ありがとうございました。
文字入力については、ちょっと研究してみます。
また、お願い致します。


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








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