Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2011.02.27;
Скачать: [xml.tar.bz2];

Вниз

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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.005 c
2-1291622653
Демерго
2010-12-06 11:04
2011.02.27
Дублирование Showmessage


2-1291296114
privet123
2010-12-02 16:21
2011.02.27
Способ прочитать с диска - правильно так?


2-1291121307
12
2010-11-30 15:48
2011.02.27
Запрос в потоке. Правильно пишу?


4-1245770042
lexik
2009-06-23 19:14
2011.02.27
Иконка в Tray без окна. (Без VCL)


15-1282469891
xayam
2010-08-22 13:38
2011.02.27
Регистрация домена в зоне .рф





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский