![]() |
|
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]()
|
|
| Albinos_x |
|
|||
![]() Evil Skynet ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3288 Регистрация: 28.5.2004 Где: X-6120400 Y-1 4624650 Репутация: 26 Всего: 108 |
Тут возник у меня вопрос:
Как сделать фильтрацию в выпадающем списке в ComboBox, в зависимости от набраемой строки. Т.е. сделать приблизительно то же, что и в Делфи по нажатью "Ctrl+Space" только в ComboBox-е -------------------- "Кто владеет информацией, тот владеет миром" Уинстон Черчилль |
|||
|
||||
| Garmahis |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 254 Регистрация: 23.12.2004 Репутация: нет Всего: 4 |
Пример помойму из DRKB
Это сообщение отредактировал(а) Garmahis - 23.4.2005, 11:38 |
|||
|
||||
| Albinos_x |
|
|||
![]() Evil Skynet ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3288 Регистрация: 28.5.2004 Где: X-6120400 Y-1 4624650 Репутация: 26 Всего: 108 |
Не... этот код не делает фильтрацию... Он просто выбирает по набронному из списка
тоже самое можно сделать
-------------------- "Кто владеет информацией, тот владеет миром" Уинстон Черчилль |
|||
|
||||
| Pakshin A. S. |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 5056 Регистрация: 16.2.2003 Репутация: 21 Всего: 61 |
Где в спрятанном ListBox'е хранится полный список... Добавлено @ 12:46 Вот только большой список не очень красиво работать будет... Добавлено @ 12:47 С тысячей быстро справляется... |
|||
|
||||
| Albinos_x |
|
|||
![]() Evil Skynet ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3288 Регистрация: 28.5.2004 Где: X-6120400 Y-1 4624650 Репутация: 26 Всего: 108 |
У меня был подобный вариант, но в нем как и в этом возникает проблема: курсор при каждом выполнении процедуры перемещяется в начало текста, что приводит к тому что текст набирается в обратном порядке
-------------------- "Кто владеет информацией, тот владеет миром" Уинстон Черчилль |
|||
|
||||
| Pakshin A. S. |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 5056 Регистрация: 16.2.2003 Репутация: 21 Всего: 61 |
|
|||
|
||||
| Albinos_x |
|
|||
![]() Evil Skynet ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3288 Регистрация: 28.5.2004 Где: X-6120400 Y-1 4624650 Репутация: 26 Всего: 108 |
Большое спасибо!
А есть возможность считывать положение курсора и его устанавливать в назначенную позицию? // допустим пользователь совершил опечатку. Он нажмет Del или BackSpase курсор переместится в конец - это не есть хорошо... -------------------- "Кто владеет информацией, тот владеет миром" Уинстон Черчилль |
|||
|
||||
| Pakshin A. S. |
|
||||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 5056 Регистрация: 16.2.2003 Репутация: 21 Всего: 61 |
Теперь еще можно и выбирать из списка элемент... и не бояться за ItemIndex... Добавлено @ 13:49
На предпоследнюю позицию... P. S. Пояcни конкретнее задачу про DEL... ^) |
||||
|
|||||
| Albinos_x |
|
||||
![]() Evil Skynet ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3288 Регистрация: 28.5.2004 Где: X-6120400 Y-1 4624650 Репутация: 26 Всего: 108 |
допустим пользователь набрал вместо Albinos_x -> Alninos_x, ему надо пеменять букву 'n' на букву 'b'. Он устанавливает курсор перед буквой 'n' и нажимает Del, курсор перемещяется в конец текста. Он по невнимательности нажимает 'b' и получает Alinos_xb. Даже если он будет внимательным, то каждый раз перемещять курсор не очень удобно...
Этот вариант не покатит Это сообщение отредактировал(а) Albinos_x - 23.4.2005, 14:06 -------------------- "Кто владеет информацией, тот владеет миром" Уинстон Черчилль |
||||
|
|||||
| Pakshin A. S. |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 5056 Регистрация: 16.2.2003 Репутация: 21 Всего: 61 |
Ok... щас доработаю исключения на данные клавиши...
|
|||
|
||||
| Pakshin A. S. |
|
||||||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 5056 Регистрация: 16.2.2003 Репутация: 21 Всего: 61 |
Идея такова:
1) Добавляем новую глобальную переменную
2) Делаем еще один обработчик
3) Изменяем процедуру:
А вот по поводу кнопочки Del... пока не получается... P. S. То, что надо реализовал? Или надо что-то иное? |
||||||
|
|||||||
| Albinos_x |
|
|||
![]() Evil Skynet ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3288 Регистрация: 28.5.2004 Где: X-6120400 Y-1 4624650 Репутация: 26 Всего: 108 |
к сожалению, нет...
почти что как надо работает первый предложенный тобой вавриант... второй делает выборку по первому символу, а третий - последний - при удалении символов не возвращяет ранее отфильтрованное...Знаю в чём проблема, но не заню как решить. Решение было бы проще если можно было считывать и также устанавливать позицию курсора... Добавлено @ 20:17
с этим не получается потому, что Key почему-то не возвращяет значение нажатие этой кнопки.. я пробовал делать #46 {VK_DELETE}, но не помогает -------------------- "Кто владеет информацией, тот владеет миром" Уинстон Черчилль |
|||
|
||||
| Pakshin A. S. |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 5056 Регистрация: 16.2.2003 Репутация: 21 Всего: 61 |
М-дя... Так... Скажи четко, что тебе нужно и я попробую все это реальзовать... Опиши различные ситуации и выборки...
|
|||
|
||||
| Albinos_x |
|
|||
![]() Evil Skynet ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3288 Регистрация: 28.5.2004 Где: X-6120400 Y-1 4624650 Репутация: 26 Всего: 108 |
Нужна фильтрация, чтобы в списке отображалось только то, что совпадает по маске с набранным(имеющимся) в комбобоксе. И чтобы с этим было удобно работать (имею ввиду что поведение курсора не должно отличатся от стандартного поверения)
-------------------- "Кто владеет информацией, тот владеет миром" Уинстон Черчилль |
|||
|
||||
| Pakshin A. S. |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 5056 Регистрация: 16.2.2003 Репутация: 21 Всего: 61 |
Ну первое, думаю уже реализовано... причем работает нормально...
Теперь второе... что подразумевается под "поведение курсора не должно отличатся от стандартного поверения"... Идеально - приведи пример типа такого: 1) Вводим ыва 2) Переходим в позицию и нажимаем что-то 3) У нас должно получиться то-то... 4) и т. д. и т. п. |
|||
|
||||
| Albinos_x |
|
|||
![]() Evil Skynet ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3288 Регистрация: 28.5.2004 Где: X-6120400 Y-1 4624650 Репутация: 26 Всего: 108 |
Пример:
1. введено 'Alninos_x|' 2. переходим в позицию 'Al|ninos_x' или 'Aln|inos_x' 3. нажимием #Del или #BackSpace cooтветственно 4. получаем 'Al|inos_x' 5. нажимаем 'b' 6. получаем ' Alb|inos_x' где | - позиция курсора PS: в принципе, выше есть пример. Просто, в проге хочу учесть все возможные действия пользователя и совместить с удобством работы в ней -------------------- "Кто владеет информацией, тот владеет миром" Уинстон Черчилль |
|||
|
||||
| Pakshin A. S. |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 5056 Регистрация: 16.2.2003 Репутация: 21 Всего: 61 |
Делаем упомянутый выше обработчик на нажатие клавиши...
и изменяем процедуру:
|
|||
|
||||
| Albinos_x |
|
|||
![]() Evil Skynet ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3288 Регистрация: 28.5.2004 Где: X-6120400 Y-1 4624650 Репутация: 26 Всего: 108 |
В этом случае курсор перемещяется в начало текста... что в принципе не отличается от других вариантов...
Ладно сделаю пока так как есть... Вот что получилось:
-------------------- "Кто владеет информацией, тот владеет миром" Уинстон Черчилль |
|||
|
||||
| Pakshin A. S. |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 5056 Регистрация: 16.2.2003 Репутация: 21 Всего: 61 |
О! Вспомнил.... Вроде так получится
Да, так работает... курсор сохраняет позицию... Добавлено @ 13:20 Кстати, а почему ты не изменяешь ItemIndex? У меня без него нельзя было выбрать корректно элемент из списка... |
|||
|
||||
| Albinos_x |
|
||||
![]() Evil Skynet ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3288 Регистрация: 28.5.2004 Где: X-6120400 Y-1 4624650 Репутация: 26 Всего: 108 |
Ок!!! Всё работает!!!
Внес изменения в
Не заметил косяк, увлёкся фильтрацией и курсором... Спасибо за замечание!... Спавибо за оказанную помощь!!! Добавлено @ 14:32 Pakshin A. S. +1 -------------------- "Кто владеет информацией, тот владеет миром" Уинстон Черчилль |
||||
|
|||||
| Pakshin A. S. |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 5056 Регистрация: 16.2.2003 Репутация: 21 Всего: 61 |
Не за что... рад немного подсобить... обращайся, если что не так пойдет...
|
|||
|
||||
![]()
|
| Правила форума "Delphi: Общие вопросы" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |