Поиск величины при вводе
Поиск величины при вводе
Каким способом можно производить поиск подходящих величин в момент ввода? Табличный курсор (визуально) должен перемещаться к наиболее подходящему значению при добавлении пользователем новых символов водимой величины.
Первоначально код писался под Delphi 1. Это может и не лучшее решение, но это работает.
Для поиска величины таблица держится открытой. Индекс должен, естественно, принадлежать полю, используемому элементом управления EditBox. В случае изменения содержимого EditBox, новое значение используется для вызова стандартной функции FindNearest таблицы TTable. Возвращаемая величина снова присваивается свойcтву Text элемента EditBox.
Я привел лишь общее решение задачи. Фактически во время изменения значения я включал таймер на период 1/3 секунды и в обработчике события OnTimer проводил операцию поиска (с выключением таймера). Это позволяло пользователю набирать без задержки нужный текст без необходимости производить поиск в расчете на вновь введенный символ (поиск проводился только при возникновении задержки в 1/3 секунды).
Вам также может понадобиться специальный обработчик нажатия клавиши backspace или добавления символа в любое место строки.
Вместо возвращения результатов элементу EditBox (который перезаписывает введенное пользователем значение), вы можете передавать результаты другому элементу управления, например компоненту ListBox. Вы также можете отобразить несколько наиболее подходящих значений, к примеру так:
procedure Edit1OnChange(…);
var i:integer;
begin
if not updating then exit; {сделайте обновление где-нибудь еще – например при срабатывании таймера}
updating:= false;
Table1.FindNearest([Edit1.text]);
ListBox1.clear;
i:= 0;
while (i < 5) and (not (table1.eof)) do begin
listbox.items.add(Table1.fields[0].asString);
inc(i);
table1.next;
end;
listbox1.itemindex:= 0;
end;
Более 800 000 книг и аудиокниг! 📚
Получи 2 месяца Литрес Подписки в подарок и наслаждайся неограниченным чтением
ПОЛУЧИТЬ ПОДАРОКЧитайте также
Поиск на научных сайтах с использованием платформы Flexum «Поиск по научным сайтам»
Поиск на научных сайтах с использованием платформы Flexum «Поиск по научным сайтам» Тема научного поиска не прошла мимо разработчиков персональных поисковиков. Подробному рассказу о возможностях таких поисковых систем посвящена отдельная глава нашей книги (см. главу 6).
RSS-поиск
RSS-поиск Пополнять список своего RSS-агрегатора можно различными способами. Первый и наиболее распространенный – простой поиск сайтов по интересующим темам, а затем подписка на их RSS-ленты, если, конечно таковые имеются. Способ несложный, однако на редкость медленный и
Поиск
Поиск Строка поискаЧтобы скрыть строку поиска из IE7, в разделе HKCUSoftwarePoliciesMicrosoftInternet ExplorerInfoDeliveryRestrictionsсоздайте параметр типа DWORD ·NoSearchBox· со значением 1. Перезапустите IE7, чтобы изменения вступили в силу. Кнопка Поиск (IE6)Чтобы изменить адрес поисковика, который у вас
Поиск
Поиск На всех страницах сайта обязательно должно быть поле для поиска товаров. Удивительно, но в некоторых интернет-магазинах отсутствует поддержка поиска по сайту. Убедитесь, что на вашем сайте есть поиск. Более того, сделайте функцию поиска максимально заметной. Чаще
Автозамена как средство предотвращения ошибок при вводе
Автозамена как средство предотвращения ошибок при вводе В данном разделе мы рассмотрим механизм автозамены, использование которого позволяет избежать случайных ошибок, возникающих при вводе тех либо иных данных (текстовых, в формате даты и др.). Его смысл заключается в
Совет 29. Рассмотрите возможность использования istreambuf_iterator при посимвольном вводе
Совет 29. Рассмотрите возможность использования istreambuf_iterator при посимвольном вводе Предположим, вы хотите скопировать текстовый файл в объект string. На первый взгляд следующее решение выглядит вполне разумно:ifstream inputFile("interestringData.txt");string fileData(istream_iterator<char>(inputFile)), //
Яндекс. Поиск – быстрый поиск документов
Яндекс. Поиск – быстрый поиск документов Документы, как известно, имеют премерзкое свойство накапливаться. И чем больше документов, тем труднее в их залежах найти нужный. Электронные документы здесь не слишком отличаются от бумажных. Проблема места для хранения, правда,
Поиск
Поиск Управление отображением команды Поиск, которая также по умолчанию входит в состав меню кнопки Пуск, осуществляется в системном реестре в разделе HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionPoliciesExplorer с помощью REG_DWORD-параметра NoFind. Чтобы удалить данную функцию, следует присвоить
Предупреждение дублирования записей при вводе их из формы
Предупреждение дублирования записей при вводе их из формы В главе 11 мы обсуждали вопрос об очистке базы данных от повторяющихся записей, которые попали в таблицы, и выяснили, что этот механизм может работать и в профилактическом режиме, предотвращая попадание дубликатов
Глава 12 Поиск с предпочтением: эвристический поиск
Глава 12 Поиск с предпочтением: эвристический поиск Поиск в графах при решении задач, как правило, невозможен без решения проблемы комбинаторной сложности, возникающей из-за быстрого роста числа альтернатив. Эффективным средством борьбы с этим служит эвристический
Поиск
Поиск Проблема поиска информации существовала всегда. Поиск информации на локальном компьютере напоминает работу поисковых систем Интернета. В данном случае можно также выделить два основных направления поиска: обычный и усложненный. Под обычным подразумевается поиск
18.7.2. Применение цикла while при вводе с клавиатуры
18.7.2. Применение цикла while при вводе с клавиатуры Цикл while может применяться для ввода информации с клавиатуры. В следующем примере введенная информация присваивается переменной film. Если нажать клавиши [Ctrl+D], цикл завершает выполнение.$ pg whileread#!/bin/sh# whilereadecho " type <CTRL?D> to
Поломки при вводе
Поломки при вводе Предположим, что в интерактивной системе необходимо выдать подсказку пользователю, от которого требуется ввести целое. Пусть только одна процедура занимается вводом целых - read_one_integer, которая результат ввода присваивает атрибуту last_integer_read. Эта
6 О вводе
6 О вводе ОДНО ИЗ ГЛАВНЫХ ПРЕИМУЩЕСТВ Интернета заключается в том, что он позволяет человеку не только изучать и использовать контент, но и участвовать в его создании. В мобильных технологиях правильная организация ввода данных — вопрос не менее важный, чем их
Голубятня: Об Алёне из Эволвы и пальцевом вводе косинуса Сергей Голубицкий
Голубятня: Об Алёне из Эволвы и пальцевом вводе косинуса Сергей Голубицкий Опубликовано 05 февраля 2013 года В минувшую пятницу так увлекся музыкальными эмоциями, что напрочь забыл подвести итоги нашей викторины и поздравить победителей :) Сегодня
Об Алёне из Эволвы и пальцевом вводе косинуса Сергей Голубицкий
Об Алёне из Эволвы и пальцевом вводе косинуса Сергей Голубицкий Опубликовано 05 февраля 2013 В минувшую пятницу так увлекся музыкальными эмоциями, что напрочь забыл подвести итоги нашей викторины и поздравить победителей :) Сегодня непременно