![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Vert ScrollBar + TDBGrid
Burn © (2010-12-04 18:24:00)можно ли сделать, чтобы содержимое дбгрид прокручивалось синхронно прокпутке вертикального скролбара.
Ega23 (2010-12-06 13:26:00) [1]
> можно ли как-нибудь снизить нагрузку на базу (СУБД ElevateDB)?
Можно. Не тащить на клиент все записи, а фильтровать их.
Burn (2010-12-06 13:20:00) [2]при scroll'инге более 2000 записей немного подтормаживает. можно ли как-нибудь снизить нагрузку на базу (СУБД ElevateDB)?
sniknik (2010-12-04 23:19:00) [3]> if ScrollCode = SB_THUMBTRACK then
> ScrollCode := SB_THUMBPOSITION;
тогда уж просто добавить код к case -
SB_THUMBPOSITION, SB_THUMBTRACK : begin ....
и все.
> а другие пользователи в этот момент добавлять либо удалять записи?
клавиатуру вырвут, мышку отберут? конечно тогда будут проблемы... подеретесь.
Burn (2010-12-04 22:28:00) [4]сделал как посоветовали, еще в обработчик добавил условие, чтобы позиция курсора изменялась на момент прокрутки. Все вроде работает как надо.
if ScrollCode = SB_THUMBTRACK then
ScrollCode := SB_THUMBPOSITION;
По ходу вопрос: при многопользовательской работе могут ли возникнуть какие-либо проблемы. Если я буду скажем прокручивать таблицу, а другие пользователи в этот момент добавлять либо удалять записи?
sniknik (2010-12-04 19:46:00) [5]правильная мысль... с оговоркой - в генофонд не лезь, сделай наследника от стандартного грида, в нем определи это событие и в нем правь (скопируй оригинальный обработчик для начала)
замени/вставь(если такого нет) вот это
SB_THUMBTRACK : begin
SI.cbSize:= sizeof(SI);
SI.fMask:= SIF_ALL;
GetScrollInfo(Self.Handle, SB_VERT, SI);
if SI.nTrackPos <= 1 then DataSource.DataSet.First
else
if SI.nTrackPos >= DataSource.DataSet.RecordCount then DataSource.DataSet.Last
else DataSource.DataSet.RecNo:= SI.nTrackPos;
end;
Burn (2010-12-04 18:32:00) [6]и как это сделать?, у меня кроме как править TCustomDBGrid.WMVScroll других мыслей не возникает.
sniknik (2010-12-04 18:29:00) [7]можно.