![]() |
|
|
![]()
|
|
| Cetus |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 141 Регистрация: 18.4.2004 Репутация: нет Всего: 1 |
В DBGrid если число фактических записей больше чем число отображаемых, то при скроле, курсор автоматически 'прыгает' в верх таблицы.
Как сделать так чтобы курсор не прыгал, и отображаемые ячейки изменялись только при прокрутке курсора на границе отображения DBGrid? --------------------
Легко внести изменения в код.Трудно сделать это корректно. |
|||
|
||||
| Dimich |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 247 Регистрация: 25.8.2004 Где: Брянск Репутация: 3 Всего: 7 |
Тут проблемка возникает не с DBGrid'ом, а с его DataSet'ом, например если используется TQuery, то курсор будет "прыгать" в диапазоне только действительно полученных записей. Если фетчить все записи (что конечно нерационально напр. Query1.Last; ), то прокрутка по идее должна получиться "плавной".
--------------------
Не работает - исправь, работает - не трогай!!! |
|||
|
||||
| Cetus |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 141 Регистрация: 18.4.2004 Репутация: нет Всего: 1 |
Использую SQLClientDataSet (DbExpress).
Что для этого компонента посоветуешь? P.S. Что значит фетчить? --------------------
Легко внести изменения в код.Трудно сделать это корректно. |
|||
|
||||
| Dimich |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 247 Регистрация: 25.8.2004 Где: Брянск Репутация: 3 Всего: 7 |
Фетчить - значит выбирать данные. Результат запроса поступает клиенту частями по мере необходимости, чтобы не загружать сеть (по мере обращения к новым порциям данных).
Насчет SQLClientDataSet (DbExpress) - тут у меня опыта нет (небыло необходимости пока юзать), но попробую посмотрю, что можно сделать. Проблема ясна. --------------------
Не работает - исправь, работает - не трогай!!! |
|||
|
||||
| User |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 213 Регистрация: 5.11.2004 Репутация: нет Всего: нет |
А я бы посоветовал воспользоваться событием Table или Query там есть такое свойство как AlferScroll кажется так пишеться, под рукой дельфи нет, и там пиши что надо. Будет работать как с клавиатурой так и с мышью! Сам проверял!
Добавлено @ 16:03 И данная проблема тоже решается. |
|||
|
||||
| AntonSaburov |
|
|||
![]() Штурман ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 5658 Регистрация: 2.7.2002 Где: Санкт-Петербург Репутация: нет Всего: 118 |
Скорее всего номер записи всегда равен -1. Это бывает часто с BDE которое работает с SQL.Тут выход - либо писать свой DataSet, либо использовать что-то другое. Тот же ADO.
|
|||
|
||||
| Cetus |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 141 Регистрация: 18.4.2004 Репутация: нет Всего: 1 |
User, и что туда писать?
Добавлено @ 11:48 AntonSaburov, номер записи отличен от 1. --------------------
Легко внести изменения в код.Трудно сделать это корректно. |
|||
|
||||
![]()
|
| Правила форума "Delphi: Базы данных и репортинг" | |
|
|
Запрещено: 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами Обязательно указание: 1. Базы данных (Paradox, Oracle и т.п.) 2. Способа доступа (ADO, BDE и т.д.)
FAQ раздела лежит здесь! Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Vit, Петрович. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Базы данных и репортинг | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |