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

Вниз

Ненормальный скролинг в DBGrid   Найти похожие ветки 

 
cutter-pro   (2002-08-30 12:55) [0]

Delphi 6.0
При отображении в DBGrid таблицы Paradox скролинг работает нормально, т.е. регулятор перемещается синхронно с перемещением по записям.
Что касается таблицы dBASE, то здесь скролинг ведет себя совсем по другому - при переходе на вторую запись, регулятор сразу перемещается на середину полосы прокрутки и, далее, остается в этом положении до тех пор, пока не будет достигнута последняя запись.
Может кто-нибудь знает как с этим бороться?
P.S. Да и в случае с Paradox - в принципе тоже не все так идеально. При перемещении регулятора скролинга изображение перерисовывается не сразу, а после отпускания кнопки мыши.
НЕХОРОШО!:(


 
Alexandr ©   (2002-08-30 13:00) [1]

DBGridEh


 
MsGuns ©   (2002-08-30 13:16) [2]

Обрабатывай событие скроллинга


 
cutter-pro   (2002-08-30 14:51) [3]

> Alexandr - Благодарю за помощь
> MsGuns - Багодарю за помощь, но мне не совсем понятно каким образом - в списке событий DBGrid wm_HScroll и wm_VScroll отсутствуют, да и для самого окна как такового - аналогично.


 
koks ©   (2002-08-30 14:52) [4]

Проблема стара как Delphi....
Универсального решения нет.
Можно DBGridEh, можно исп. ADO. После множества экспериментов я на нее забил...


 
cutter-pro   (2002-08-30 16:22) [5]

> Alexandr - только что установил DBGridEh - ситуация не изменилась. :(


 
Prooksius ©   (2002-08-30 16:31) [6]

Правильно, поэтому я снес вертикальную полосу прокрутки в DBGridEh и залепил свою, обрабатывая самостоятельно скроллинг.


 
cutter-pro   (2002-08-30 16:45) [7]

> Prooksius - Спасибо за совет - но я не понял - что значит залепил, ввиде чего, если конечно это не конфиденциальная информация?


 
Desdechado ©   (2002-08-30 17:02) [8]

вообще-то такое поведение нормально. это связано с тем, что гриду не известно количество записей в подлежащем датасете. Поэтому только начало, середина и конец.
Скажете, что записи уже зафэтчены и их можно посчитать - но это дополнительные тормоза, особенно когда набор данных большой. Кроме того, при установке фильтра или OnFilterRecord вообще неизвестно, сколько записей будет удовлетворять фильтру без полного их перебора, а перебирать их без команды программиста или юзера (особенно если важна текущая позиция в датасете) программа не имеет права.


 
cutter-pro   (2002-08-30 17:35) [9]

> Desdechado
Что значит зафытченные записи?
Почему количество записей неизвестно? По-крайней мере, при связывании DataSource напрямую с Table без фильтров и т.д. количество записей dBASE (*.dbf) находится в файле по абсолютному смещению 0004h.
Что Вы думаете по этому поводу?


 
Desdechado ©   (2002-08-31 16:20) [10]

1. для доставания каждой записи из БД выполняется команда Fetch (это на уровне внутренностей БДЕ) - отсюда и термин.
2. это лишь частный случай, поскольку БДЕ обучен работать с любым сервером БД, для которого у него есть драйвер. Конкретика реализации для него не важна. А для большинства СУБД количество записей заранее в выборке неизвестна. И даже для DBF число записей, указанное тобой, слишком неустойчивая вещь в сети. Оно постоянно меняется, в него входят и удаленные записи (представь ситуацию - 10 млн удаленных и одна нормальная: как себя вести?). При открытии таблицы с одного рабочего места там одно число будет, а потом сосед добавил записи - оно другое. Ты записи видишь, а количество уже не совпадает.


 
Prooksius ©   (2002-08-31 20:25) [11]

2 cutter-pro: Ну я имел ввиду, поставил на форму стандартный TScrollBar (или RX) и обрабатывал скроллинг с помощью него. А тот Vertical Scroll Bar, что был в TDBGridEx - убрал (благо, такая опция есть).


 
cutter-pro   (2002-09-02 10:22) [12]

Мужики - ОГРОМНОЕ СПАСИБО! :)



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

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

Наверх




Память: 0.49 MB
Время: 0.023 c
6-73790
Sky Net
2002-07-19 22:35
2002.09.23
Как получить файл из инета в Delphi 6 ?


4-73951
dmtr
2002-08-02 17:05
2002.09.23
Дата последней модификации файла


1-73626
Konsul
2002-09-12 14:44
2002.09.23
Tray


3-73539
gera-killer
2002-09-02 15:02
2002.09.23
Delphi + Btrieve?


14-73859
easy
2002-08-28 15:15
2002.09.23
ПОЧЕМУ СОБАКИ ЛУЧШЕ, ЧЕМ МУЖЬЯ