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

Вниз

Vert ScrollBar + TDBGrid   Найти похожие ветки 

 
Burn   (2010-12-04 18:24) [0]

можно ли сделать, чтобы содержимое дбгрид прокручивалось синхронно прокпутке вертикального скролбара.


 
sniknik ©   (2010-12-04 18:29) [1]

можно.


 
Burn   (2010-12-04 18:32) [2]

и как это сделать?, у меня кроме как править TCustomDBGrid.WMVScroll других мыслей не возникает.


 
sniknik ©   (2010-12-04 19:46) [3]

правильная мысль... с оговоркой - в генофонд не лезь, сделай наследника от стандартного грида, в нем определи это событие и в нем правь (скопируй оригинальный обработчик для начала)
замени/вставь(если такого нет)  вот это
     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 22:28) [4]

сделал как посоветовали, еще в обработчик добавил условие, чтобы позиция курсора изменялась на момент прокрутки. Все вроде работает как надо.


if ScrollCode = SB_THUMBTRACK then
     ScrollCode := SB_THUMBPOSITION;


По ходу вопрос: при многопользовательской работе могут ли возникнуть какие-либо проблемы. Если я буду скажем прокручивать таблицу,  а другие пользователи в этот момент добавлять либо удалять записи?


 
sniknik ©   (2010-12-04 23:19) [5]

> if ScrollCode = SB_THUMBTRACK then
>      ScrollCode := SB_THUMBPOSITION;
тогда уж просто добавить код к case -
SB_THUMBPOSITION, SB_THUMBTRACK : begin ....
и все.

> а другие пользователи в этот момент добавлять либо удалять записи?
клавиатуру вырвут, мышку отберут? конечно тогда будут проблемы... подеретесь.


 
Burn   (2010-12-06 13:20) [6]

при scroll"инге более 2000 записей немного подтормаживает. можно ли как-нибудь снизить нагрузку на базу (СУБД ElevateDB)?


 
Ega23 ©   (2010-12-06 13:26) [7]


>  можно ли как-нибудь снизить нагрузку на базу (СУБД ElevateDB)?


Можно. Не тащить на клиент все записи, а фильтровать их.



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

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

Наверх




Память: 0.48 MB
Время: 0.012 c
2-1291636226
новичок95
2010-12-06 14:50
2011.02.27
организация кода


15-1290029388
Юрий
2010-11-18 00:29
2011.02.27
С днем рождения ! 18 ноября 2010 четверг


15-1290115787
Юрий
2010-11-19 00:29
2011.02.27
С днем рождения ! 19 ноября 2010 пятница


2-1291800746
cross
2010-12-08 12:32
2011.02.27
Доступ к списку (private) класса TA из класса TB содержащего TA


2-1291585874
Ghost del vonte
2010-12-06 00:51
2011.02.27
Проверка слов