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

Вниз

Ненормальный скролинг в 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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.47 MB
Время: 0.007 c
14-73835
AL2002
2002-08-27 12:20
2002.09.23
Откуда эти линки в избранном берутся.


1-73665
-==stranger==-
2002-09-12 10:47
2002.09.23
Нужен ввод формул...


14-73827
Vint44
2002-08-27 13:28
2002.09.23
Ищу компоненту вроде эквалайзера


1-73724
Dmitriy_R
2002-09-11 12:12
2002.09.23
Управление чужой программой


14-73884
Digitman
2002-08-29 12:30
2002.09.23
Отличное наглядное пособие для новичков в Delpi Object Pascal )





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский