![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
ComboBox
Gek1 © (2005-03-17 10:14:00)Хочу сделать в comboBox список строк, а также чтобы можно было вводить свое значение. Также в обработчике OnChange слежу за изменением строки.
Написал простенький обработчик:
procedure TForm1.ComboBox1Change(Sender: TObject);
Var name : String;
begin
name := Form1.ComboBox1.Text;
Form1.ComboBox1.ItemIndex := Form1.ComboBox1.Items.IndexOf(name);
Form1.ComboBox1.Text := name;
end;
В итоге нашел очень неудачный момент:
Если выделить текст в нем и попытаться ввести другой текст, то после ввода первого символа - курсор ввода прыгает в начало. (перед первой буквой). Т.е набирая слово Тест - получим естТ.
Если выделить и нажать Del, то набираеться нормально.
Если я закоментирую:
Form1.ComboBox1.ItemIndex := Form1.ComboBox1.Items.IndexOf(name);
то все работает нормально. Но я хочу чтобы индекс менялся на нужную если слово есть и менялся на -1 если слова нету.
Мастера как избавиться от этой гадости?
Gek1 (2005-03-17 10:38:00) [1]
> убери из кода вторую строку. ComboBox автоматически устанавливает
> ItemIndex при нахождении строки и ты его можешь узнавать
> в любой момент.
Да действительно. Спасибо.
Gek1 (2005-03-17 10:36:00) [2]
> AutoSelect
Нету такого поля у компонента.
> и все будет работать и без твоего кода
Нужен мне этот код. в этом событии я проверяю что ввел пользователь. Код я этот убрал, потому как он роли не играет на эту гадость.
> Убрать 3-ю строчку
Убрать Begin? :-)
ssk (2005-03-17 10:29:00) [3]убери из кода вторую строку. ComboBox автоматически устанавливает ItemIndex при нахождении строки и ты его можешь узнавать в любой момент.
ЮЮ (2005-03-17 10:23:00) [4]Поставь AutoSelect = true и все будет работать и без твоего кода
ЮЮ (2005-03-17 10:21:00) [5]Убрать 3-ю строчку