Вниз
Скачать: CL | DM;

Изменить Scroll у TStringList   Найти похожие ветки 

← →
Новенький   (2005-10-25 11:28) [0]

Ув. мастера.
Мне поставили задачу сделать у стринг листа "мягкий скрол",
а опыта написания своих компонент у меня пока маловато.
То есть ячейки грида должны не перескакивать, а постепенно опускаться или подниматься.

Может кто решал подобную задачу, подскажите пожалуйста.


← →
Новенький   (2005-10-25 11:33) [1]

Сори не проснулся еще, все выше сказанное относится к TStringGrid


← →
clickmaker ©   (2005-10-25 15:26) [2]


> Мне поставили задачу сделать у стринг листа "мягкий скрол",

никогда не понимал таких постановщиков... зачем?


← →
Новенький   (2005-10-25 17:03) [3]

Я тоже не понимаю зачем, мож для красоты, но деваться некуда. Пробовал разместить стринггрид на скролбоксе, но оказалось, что есть ограничение на Heigth грида. Может подскажете в каком направлении двигаться, если это конечно реально с небольшими затратами сделать.


← →
clickmaker ©   (2005-10-25 18:04) [4]

нереально в стандартном
ищи другие компоненты
на torry.net, например, или здесь tmssoftware.com


← →
Новенький   (2005-10-25 18:12) [5]

Спасибо Сlickmaker.


← →
Юрий Зотов ©   (2005-10-26 04:52) [6]

Вообще говоря, достаточно заместить обработку сообщения WM_VSCROLL (а если надо, то и WM_HSCROLL) и ввести свою прорисовку ячеек. Но если нет достаточного в этм деле опыта, то действительно стоит сначала поискать готовый компонент.


← →
Новенький   (2005-10-28 18:36) [7]

Интересно, а можно поподробней пожалуйста.
Вы имеете ввиду в обработчике wm_scroll рисовать свои ячейки или onDrawCell, извините за ламерство.


← →
Юрий Зотов ©   (2005-10-28 18:41) [8]

В wm_scroll обеспечить плавное движение скроллбара, а ячейки рисовать в DrawCell в зависимости от позиции скроллбара. Еще потребуется отлов добавления/удаления ячеек, чтобы менять пределы скроллбара.

Посмотрите, как все это сделано в стандартном гриде - многое станет ясно.


← →
Новенький   (2005-10-28 19:03) [9]

Ну плавное движение скролбара можно обеспечить с помощью
Options.goThumbTracking. А в остальном я понимаю, что все свойства предка,
типа CellRect(x, y), VisibleRowCount и т. д. тоже придется задавать самому?
Может тогда лучше взять скрол бокс и рисовть на нем, создавать TImage и перемещать пока станет не видимым?


← →
Новенький   (2005-10-31 14:43) [10]

>Юрий Зотов ©

Все таки думаю, что не получится, в обработчике wm_scroll, борландовцы
изменяют положение верхней ячейки (FtopLeft, то есть вторая санет первой  и т. д), соответственоо ее top всегда равен Top клиенской области, а потом сдвигают среднюю часть.
А мне было необходимо, чтобы верхняя ячейка плавно поползла вверх.


← →
Игорь Шевченко ©   (2005-11-03 13:17) [11]


> А мне было необходимо, чтобы верхняя ячейка плавно поползла
> вверх.


Я бы посоветовал найти в grids.pas вызовы функций ScrollWindow, ScrollWindowEx и найти способ вызвать вместо них функцию ScrollWindowEx с флагом SW_SMOOTHSCROLL.


← →
Новенький   (2005-11-10 16:57) [12]

Спасибо, отказался я переделывать стандартный грид, да и задуман он так чтобы всегда показывать целую ячейку.

Вышел таким образом: взял ScrollBox ввиде подложки и CustomControl как ячейку и приблизительно повторил работу грида.



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

Скачать: CL | DM;



Память: 0.48 MB
Время: 0.027 c
2-1145956053
petun
2006-04-25 13:07
2006.05.14
имена месяцев в правильном формате


15-1145445960
Некто_
2006-04-19 15:26
2006.05.14
Проигрыватель жжостких дисков =)))


3-1142515092
Aleksandr.
2006-03-16 16:18
2006.05.14
Как отскроллировать DBGrid на несколько записей?


1-1144177982
Yozch1
2006-04-04 23:13
2006.05.14
Динамическая загрузка DLL при работе с CD


9-1129754635
Ricks
2005-10-20 00:43
2006.05.14
Элементарный поиск пути




   Наверх