![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
DBCtrlGrid и поиск [D5, dBase, FoxPro]
Fishka © (2004-04-20 15:33:00)В DBCtrlGrid отражается результат запроса. В Edit вводится какой-то текст. Далее в каждой записи в нужном мне поле путем хождения в цикле по записям я ищу набранный текст.Если текст найден, то поиск прекращается.
Вопрос:как сделать так, чтобы при поиске не было видно "мелькание записей"?
Не помогло:
DBCtrlGrid.DataSource.DataSet.DisableControls;
DataSource3.DataSet:=nil;
DBCtrlGrid.DataSource:=nil;
Fishka (2004-04-21 11:03:00) [1]Johnmen © (21.04.04 09:38) [7]
Враньё... Не может такого быть...
Ну зачем так грубо, ошибка была в другом (if ... begin ... end не так написан был). Но как было написано в самом вопросе, именно с DBCtrlGrid.DataSource.DataSet.DisableControls; все попытки начинались отключить "мелькание".
Спасибо, все получилось с DisableControls.
Соловьев (2004-04-21 10:05:00) [2]
> Johnmen © (20.04.04 17:44) [4]
> DisableControls;
> <поиск>
> EnableControls;
> и ничего более...:)
Желательно еще и закладку поставить - вдруг ничего не найдет?
Fishka (2004-04-21 09:42:00) [3]Точно в Query ищу. И без всяких наворотов все нормально. Но мне нужно сократить время поиска и убрать "мелькание", у заказчика Pentium 1 с очень слабыми характеристиками.
Johnmen (2004-04-21 09:38:00) [4]Враньё... Не может такого быть...
Query.DisableControls;
<поиск в Query>
Query.EnableControls;
ЮЮ (2004-04-21 09:35:00) [5]>if (AnsiPos(...)) then break;
А точно в Query ищешь, а не в каком нибудь DBControle ?
Fishka (2004-04-21 09:32:00) [6]А у меня почему-то при такой конструкции:
DBCtrlGrid.DataSource.DataSet.DisableControls;
while not Query.Eof do
begin
if (AnsiPos(...)) then break;
Query.Next;
end;
DBCtrlGrid.DataSource.DataSet.EnableControls;
вообще нет никакого поиска.
Если убрать DisableControls и EnableControls, то "мелькание" и поиск.
Johnmen (2004-04-20 17:44:00) [7]
DisableControls;
<поиск>
EnableControls;
и ничего более...:)
Fishka (2004-04-20 17:38:00) [8]RayRom © (20.04.04 16:26) [1]
Но и в данном случае придется "пробегать по записям", и "мелькание" будет.
innok © (20.04.04 16:45) [2]
Мне кажется, что поиск через Locate ищет только с начала , а не на вхождение. Мне нужен поиск на вхождение. Или я ошибаюсь?
Жду ответов.
innok (2004-04-20 16:45:00) [9]у меня вот так, можешь переделать под query
procedure TForm1.Edit2Change(Sender: TObject);
begin
DataModule2.ADODataSet1.Locate('fio',Edit2.Text,[loCaseInsensitive,loPartialKey]);
end;
RayRom (2004-04-20 16:26:00) [10]Короче создай есче один Куери подобный что передает в ДатаКонтрол, и ищи по нему, а потом передавай номер записи в твой ДатаКонтрол.