Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

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-ю строчку


Наверх

Титульная страница Поиск, карта сайта Написать письмо