| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Общие вопросы > combobox запрет редактирования |
| Автор: MrDmitry 4.4.2014, 14:19 | ||||
Помогите написать процедурку которая бы проверяла текст введенный в комбобкс и если у комбобкс.items нет совпадений с текстом то запрещала бы ввод. Попробовал реализовать так.
Вызов
Но что то у комбобокса становится странное поведение ( |
| Автор: Poseidon 4.4.2014, 14:45 |
| Ну заполняешь ты свой list совпадениями при каждом нажатии клавиши, и что дальше? Явно не хватает Combo.Items := list. Добавлено через 2 минуты и 11 секунд А ввобще я бы сделал через OnKeyDown и блокировкой Key := #0. |
| Автор: MrDmitry 4.4.2014, 16:07 | ||
| Вы не поняли что я хочу. Мне не нужно заполнять список combobox мне нужно запретить ввод данных если в списке combobox не нашлось совпадений. Например у меня есть
Например я ввожу в combobox 1 - это текст должен ввестись так как 1 в списке есть 12 - это текст должен ввестись так как 12 в списке есть 112 - символ 2 после 11 не должен ввестись так как совпадений в тексте нет при этом если ввести 113 то 3 введется |
| Автор: Poseidon 4.4.2014, 21:38 | ||
Я понял что ты хочешь. Еще я вижу что ты уже написал. Даже если допустить, что я не разобрался, тогда объясни мне что делает с твоем коде list?
Только не забудь предусмотреть дополнительную обработку нужных клавиш (BackSpace и т.п.) |
| Автор: MrDmitry 4.4.2014, 23:35 | ||||||||
У меня была не удачная реализация )) По моей логике должно было происходить так. В list заносятся все значения от комбобокса в которых нашлись совпадения с введенной стройкой, соответственно если list не пустой, то продолжаем ввод, если пустой, то затираем последний введенный символ(не позволяем вводить новый) но вот логика компилятора(да и вообще логика) со мной не согласились )) Ваш код работает, но наверное после того как я его не много переделал под себя появился не больший глюк, 1 символ вводится нормально, а во последующие приходится вводить 2 раза. Например я ввел "П" потом ввожу"р" и ни чего, ввожу еще раз "р" вводится.
вызов
|
| Автор: MrDmitry 5.4.2014, 03:46 | ||||||
Чувства вас подвели ) Спасибо |