Sep 20, 2011 21:55
Что есть:
ПО написано на Delphi7.
Есть некая база данных. На самом деле БД построена на типизированных файлах. Однако при загрузке ПО все это добро читается в память в несколько таблиц и оттуда уже работает. Для поиска используется одна таблица, остальные используются уже при выводе данных на экран.
Задача.
Организовать "Поиск на лету", т.е. при изменении поисковых параметров тут же выводить найденные данные. На данный момент на каждое изменение проводиться полноценный поиск с выводом рез-татов. Однако в среднем процедура поиска выполняется дольше чем пауза между изменениями поисковых параметров (набором с клавиатуры). Т.е. на данный момент при вводе поискового запроса с клавиатуры наблюдается "торможение" ввода, что обусловлено работой процедуры поиска. При этом все остальные функции программы не используются, т.е. данный поиск может работать в "монопольном" режиме.
Вопрос.
Как правильно организовать поиск на лету, при условии что поиск в среднем длится дольше, чем пауза между вводом букв с клавиатуры. Как правильно устроить прерывание поиска при условии что оне еще не завершен, а входные параметры уже изменены? Нити? Как их правильно прерывать? Или есть другие варианты?
delphi,
бля,
программирование