Текущий архив: 2003.11.13;
Скачать: CL | DM;
ВнизПравильная работа с ComboBox csDropDown Найти похожие ветки
← →
hepry (2003-10-31 14:38) [0]Здравствуйте!
Никак не разобраться.
Combobox на форме является списком неких объектов (скажем фильтров), параметры которых определяются другими объектами на форме. Бъюсь над тем, чтобы можно было бы именовать эти объекты прямо в комбо (Style:=csDropDown, AutoComplete:=false).
OnChange как будто ищет в комбо элемент с вводимой строкой и выбивает ItemIndex в -1. (даже inherited в методе, что OnChange, комментировал, результата нет)
Как добиться нужного поведения?
Заранее спасибо.
← →
ZEE (2003-10-31 14:45) [1]если я правильно понял - идется про подсветку возможного варианта ввода в ComboBox"е - так ItemIndex и будет =-1 пока ты не введешь правильную строку (т.е. кот. есть в списке)
← →
hepry (2003-10-31 14:49) [2]ок. по другому (что-то сегодня у меня с лексикой :)
Переименовать конкретный Item[ItemIndex]:=Text можно из самого комбо? Или стиль csDropDown только для ввода/поиска существующих строк в контроле?
← →
Юрий Федоров (2003-10-31 15:04) [3]Нельзя. Только программно. Но это очень криво, имхо
← →
hepry (2003-10-31 15:57) [4]Пришлось извращаться.
Обнаружил такую последовательность событий:
OnKeyDown
OnChange
OnKeyUp
Посему, в cbxKeyDown ставлю флаг cbx.Tag:=1, cbx.HelpContext:=cbx.ItemIndex
а в cbxChange
if cbx.Tag=1 then
begin
cbx.Tag:=0;
exit;
end;
....<то, что делать при выборе элемента из комбо>
и уже в KeyUp
cbx.Items[cbx.HelpContext]:=cbx.Text;
cbx.ItemIndex:=cbx.HelpContext;
---
только теперь приходиться заморачиваться с SelLength и SelStart
:-)
Страницы: 1 вся ветка
Текущий архив: 2003.11.13;
Скачать: CL | DM;
Память: 0.45 MB
Время: 0.036 c