Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.45 MB
Время: 0.021 c
10-1081842614
Polevi
2004-04-13 11:50
2005.01.23
BindToObject


1-1105428274
Eyfel
2005-01-11 10:24
2005.01.23
пакеты в deplhi 2005


6-1098573785
nsvi
2004-10-24 03:23
2005.01.23
Вопрос по WebBrowser


6-1099463072
MegaVolt
2004-11-03 09:24
2005.01.23
Самодельный файервол для чата.


1-1105520897
zorik
2005-01-12 12:08
2005.01.23
команда MSDos




   Наверх