Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

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]

Короче создай есче один Куери подобный что передает в ДатаКонтрол, и ищи по нему, а потом передавай номер записи в твой ДатаКонтрол.


Наверх

Титульная страница Поиск, карта сайта Написать письмо