Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.01.23;
Скачать: CL | DM;

Вниз

Обновление данных в DBGrid   Найти похожие ветки 

 
7E81h ©   (2004-12-18 21:21) [0]

Здравствуйте, уважаемые Мастера!
Прошу помощи!

Имеется DBGrid, связанный с IBQuery.
Нужно с определенным интервалом времени обновлять данные в DBGrid"е.
Использую следующий простейший код:


procedure TForm1.Timer1Timer(Sender: TObject);
var
 // nSaved: Integer;
 Bookmark: TBookmark;
begin
 with DataMod1 do begin
   // Сохранить номер текущей записи
   Bookmark:= IBQuery1.GetBookmark;
   // либо:
   //  nSaved:= IBQuery1.FieldByName("ID_NO").AsInteger;
   try
     // Обновить данные
     IBQuery1.Close;
     IBQuery1.Open;
     // Восстановить номер текущей записи
     IBQuery1.GotoBookmark( Bookmark );
     // либо:
     //  IBQuery1.Locate( "ID_NO", nSaved, [] );
   finally
     IBQuery1.FreeBookmark( Bookmark );
   end;
 end;
end;


При этом иногда происходит мерцание DBGrid"а и в ряде
случаев его скроллинг.

Отключение DataSource на время обновления не дает результата,
так как при этом все равно происходит перерисовка DBGrid.

Установка DBGrid1.DefaultDrawing:= False не позволяет избежать
перерисовки фона, поэтому мерцание также не устраняет.

Установка DoubleBuffered:= True также не приводит к нужному результату.

Методы BeginUpdate и EndUpdate являются protected и недоступны.

Возможно ли каким-либо образом блокировать перерисовку DBGrid на
время обновления источника данных?

Можно ли избежать скроллинга DBGrid"а при восстановлении текущей записи после обновления?

Направьте, пожалуйста, на путь истинный!


 
Sergey_Masloff   (2004-12-18 21:32) [1]

Возможно ли каким-либо образом блокировать перерисовку DBGrid на
время обновления источника данных?


YourDataSet.DisableControls();
try
 переоткрываешь
finally
 YourDataSet.EnableControls();
end;


 
Fin ©   (2004-12-18 23:11) [2]

На счет того Можно ли избежать скроллинга DBGrid"а не отвечу, так как с ходу не знаю и как то не задумывался, а вот по поводу того что ты ищешь предыдущую запись при помощи Bookmark, вызывает сомнение. Дело в том что после обновления источника данных возвращаемые записи могут оказаться в другой последовательности, а предыдущий Bookmark был првязан как раз к нобору данных до обновления. Не знаю как у теба, но у меня GotoBookmark после обновления устанавливается на такой же порядковый номер записи что и до обновления, но сама запись после обновления уже переместилась в другое место.


 
7E81h ©   (2004-12-19 11:39) [3]

Спасибо большое!



Страницы: 1 вся ветка

Текущий архив: 2005.01.23;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.026 c
9-1097692756
rts111
2004-10-13 22:39
2005.01.23
Полезные утилиты


3-1103425616
TechnoDreamer
2004-12-19 06:06
2005.01.23
ADO, Access и пустые таблицы


1-1105470455
Oddin
2005-01-11 22:07
2005.01.23
Ассоциация файлов с программой


14-1104822935
syte_ser78
2005-01-04 10:15
2005.01.23
Как я провел выходные (продолжение)


9-1097749443
Malefic
2004-10-14 14:24
2005.01.23
Как сделать многоуровневую карту?