![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Мигает DBGrid [D7]
LinOS © (2003-12-08 13:48:00)
Кважаемые мастера.
Есть два DBGrid`а. при навигации в первом гриде выполняется
процедура AfterScroll в которой выполняется запрос. Данные этого запроса отображаются во втором гриде. МОжно ли сделавть, что бы при навигации в первом гриде второй не моргал?
Вованчик (2003-12-09 15:20:00) [21]
> LinOS ©
а какой всетаки запрос? Напиши.
Может проше сделать как предлагает Shirson © (08.12.03 14:23) [2].
Да и судя по вопросу у тебя можно реализовать связь 1:М
Alex_Bredin (2003-12-09 14:41:00) [22]
тогда
> HSolo © (09.12.03 14:15) [12]
но неясен вопрос - кому нужны результаты выборок, которые в следующую секунду(не будучи хоть как-то использованы),будут затерты другой выборкой - ненужная нагрузка на сервер и сеть.
HSolo (2003-12-09 14:15:00) [23]
> после того как я встал на новую строку кнопку жать :/ ?
Пусть таймер нажмет :))
LinOS (2003-12-09 13:57:00) [24]
> Вы выбираете из первого НД запись, жмете кнопку, формируете
> условие запроса и вытаскиваете на клиента записи, удовл.
> условию
Нет так не пойдет.
У меня два грида. При навигации в первом данные второго грида меняются. И что же мне после того как я встал на новую строку кнопку жать :/ ?
Alex_Bredin (2003-12-09 13:27:00) [25]
> LinOS © (09.12.03 13:06) [7]
> // может запрос лучше выполнять один раз(по кнопке например)
>
> Это что, закачать всю таблицу, а потом фильтровать?
> А если она очень большая?
> В общем если я делаю для ClientDataSet Open потом новый
> запрос и
> Close
> Open
> то никаким образом нельзя сделать что бы grid не моргал?
> Так?
зачем закачивать всю таблицу? Вы выбираете из первого НД запись, жмете кнопку, формируете условие запроса и вытаскиваете на клиента записи, удовл. условию. Фильтровать - Боже упаси.
Silver Alex (2003-12-09 13:14:00) [26]вместо AfterScroll можно попробовать DataSource.OnDataChange, кстати есть у меня компонент там как раз релизована такая задержка http://www.delphimaster.ru/cgi-bin/download.pl?get=1067936708&n=0
HSolo (2003-12-09 13:11:00) [27]
И для пущей красоты:
DBGrid.DataSource := nil;
выполняем запрос
DBGrid.DataSource := то-что-было;
LinOS (2003-12-09 13:06:00) [28]
// может запрос лучше выполнять один раз(по кнопке например)
Это что, закачать всю таблицу, а потом фильтровать?
А если она очень большая?
В общем если я делаю для ClientDataSet Open потом новый запрос и
Close
Open
то никаким образом нельзя сделать что бы grid не моргал? Так?
HSolo (2003-12-09 13:04:00) [29]
Бросьте на форму TTimer.
В его OnTimer - выполняйте запрос и Timer.Enabled := false;
В AfterScroll - Timer.Enabled := true;
И подберите интервал таймера - через какое время после окончания навигации выполнять запрос.
Alex_Bredin (2003-12-09 12:49:00) [30]
как же он не будет моргать, если НД каждый раз заново открывается?
тут другой вопрос уместен- а оправдано ли такое решение?
может запрос лучше выполнять один раз(по кнопке например)
LinOS (2003-12-09 12:40:00) [31]
// with DataSet do
// try
// DisableControls;
// ...
// finally
// EnableControls;
// end;
Это не помогает.
Silver Alex (2003-12-08 14:32:00) [32]
не совсем понятно что к чему, но может это пойдет
with DataSet do
try
DisableControls;
...
finally
EnableControls;
end;
Shirson (2003-12-08 14:23:00) [33]
Не проще ли связать источники этих гридов по DataSource?
NAlexey (2003-12-08 13:49:00) [34]
Прогнозирую не меньше 3 постов исключая мой.