TComboBoxでリスト選択中にDelキーを押したとき

解決


まさ  2009-10-13 14:20:19  No: 35877  IP: 192.*.*.*

ComboBoxで既に値が選択されている状態で、リスト選択の画面を出しDelキーを押すと,TEXTの選択していた値はクリアーされますが、ItemIndexが-1になってくれません。

リスト選択の画面をだしていない時は、問題なくItemIndexに-1がセットされているようですが。。

OnKeyDownイベントでDelキーの場合にItemIndex=-1にセットしてみましたが、Exitすると元の値に戻ります。

何かい良い方法はありますか?

編集 削除
monaa  2009-10-13 19:55:19  No: 35878  IP: 192.*.*.*

OnCloseUpイベントでセットしたらどうですか?
ってこのイベント、どのバージョンから追加されたんだ??

編集 削除
tono  2009-10-13 23:54:34  No: 35879  IP: 192.*.*.*

リスト選択画面が出ていない時は問題ないとのことですので、
一度リストを閉じてみればいいのではないでしょうか?
仕様次第ですが。

procedure TForm1.ComboBox1KeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  if (Key = VK_DELETE) then
  begin
    ComboBox1.DroppedDown := False;
    ComboBox1.ItemIndex := -1;
  end;
end;

編集 削除
まさ  2009-10-14 09:52:10  No: 35880  IP: 192.*.*.*

monaaさん、tonoさんありがとうございます。

一度リストを閉じる方法で解決しました。

アプリの仕様としては、DelphiのIDEのプロパティーを選択するのと同様で
TEXT域は入力可能ですがリスト中の値に一致していないとエラーです。
ただ、入力は任意です。

早々にアドバイス頂き、本当に助かりました。ありがとうございます。

編集 削除