Форум: "Компоненты";
Текущий архив: 2006.05.14;
Скачать: [xml.tar.bz2];
ВнизИзменить 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 вся ветка
Форум: "Компоненты";
Текущий архив: 2006.05.14;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.01 c