![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Скроллбар в DBAware компонентах
DeadMeat © (2007-01-03 13:38:00)Здравствуйте!
Такой вопрос возник, только прошу не пинайте, если решается он очень просто. Я в DB новичек.
Собсна в чем сабж. Взять к примеру DBGrid. При использовании колесика мышки или при ручном "перетаскивании" скроллбара компонент ведет себя несколько странно на мой взгляд. А именно, меняет свое положение текущий курсор записи, а не скроллируется весь список. Т.е. не так, как обычно ведет себя скроллбар. Тоже самое и в DBLookupComboBox. Только там колесико вообще не работает и размер скроллбара не пропорционален общему количеству записей.
Как обойти это проблему?
Tex (2007-01-11 13:33:00) [1]Интересный вопрос. Тоже бы хотелось разобраться с прокруткой. Заметил, что горизонтальный скрол текущую ячеку не меняет, если прокручивать его, а вертикальный - меняет! Можно ли как-то обойти это именно в стандарном dbgrid, чтобы просто прокручивать список, пусть выделенная ячейка (строка) висит себе на том же месте?
Desdechado (2007-01-10 12:17:00) [2]TClientDataset имхо самый адекватный. Однако он часто избыточен.
DeadMeat (2007-01-10 12:15:00) [3]В принципе почему я сам не задал вопрос в "Начинающие", это потому что, он в течении часа уходит на "задние" страницы и его уже никто не видит. Да и вроде как по базам вопрос.
DeadMeat (2007-01-09 13:10:00) [4]Ну еще раз... плииз. Кто-нибудь.
DeadMeat (2007-01-06 01:40:00) [5]Дико извиняюсь, но UP.
DeadMeat (2007-01-04 23:15:00) [6]Ага. Примерно понял. А что делать? Что там надо изменить не понимаю. Или может сторонний датасет какой?
Desdechado (2007-01-04 20:43:00) [7]Поведение скролбаров грида зависит от датасета, на который он нацелен.
Некоторые умеют только уведомить грид, что "на первой записи", "где-то в середине", "на последней записи". А некоторые нормально указывают относительную позицию. Вот ползунок так себя и ведет.
DeadMeat (2007-01-04 20:16:00) [8]Ну так что? Все еще туманно?
DeadMeat (2007-01-04 01:54:00) [9]Эмм... Даже не знаю как объяснить. Понимаю, что туманно.
Ну вообщем так. Постараюсь подробно.
Есть DBGrid. К примеру в нем "содержаться" следующие записи:
1 | A
2 | B
3 | C
4 | D
5 | E
Высота грида такова, что видны только три записи. Соответственно появляется вертикальный скроллбар. Так вот, при обычном поведении, когда тянешь за скроллбар, появится следующая запись, а предыдущие три уйдут наверх на одну позицию. Так? А здесь ситуация чуток иная. Тянешь за скроллбар, смещается курсор в таблице на одну позицию вниз, т.е. как будто я просто с клавиатуры нажал стрелку вниз.
Попробую изобразить.
Изначальный вариант:
> 1 | A []
2 | B
3 | C
Тянем за скролл и получаем:
1 | A
> 2 | B []
3 | C
А хотелось бы получить:
2 | B
3 | C []
4 | D
Не знаю... надеюсь так понятней.
Германн (2007-01-04 01:13:00) [10]Чё-то мой телепатор подсказывает, что автор "криво" изложил свою проблему и его никто не понял.
2 DeadMeat © (03.01.07 13:38)
Что означает:
1.
> меняет свое положение текущий курсор записи
2.
> не скроллируется весь список
3.
> не так, как обычно ведет себя скроллбар
DeadMeat (2007-01-03 15:08:00) [11]> [3] Anatoly Podgoretsky © (03.01.07 15:05)
> > DeadMeat (03.01.2007 13:38:00) [0]
>
> Используй АДО и клиентские курсоры
Если Вы имеете ввиду clUseClient, то так и стоит в ADOConnection. И да, моя ошибка, забыл добавить, что использую ADO и MSSQL.
Anatoly Podgoretsky (2007-01-03 15:05:00) [12]> DeadMeat (03.01.2007 13:38:00) [0]
Используй АДО и клиентские курсоры
DeadMeat (2007-01-03 14:52:00) [13]А где, если не секрет?
Правильный Вася (2007-01-03 13:46:00) [14]это настраивается