![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Скроллинг WinControl
dosik © (2004-07-07 01:30:00)Уважаемые, доброе время суток!!! Пишу свой ListView только не на базе ListView_XXX макросов а полностью свой на базе WinConrol. Как организовать скроллинг приклепленной к нему канвы.
Заранее благодарен.
Дмитрий.
dosik (2004-07-07 22:56:00) [1]Ну я так и планирую , только вот там тоже геморои сови возникают )))
Mim1 (2004-07-07 21:56:00) [2]
> [2] dosik (07.07.04 13:26)
Может тогда пронаследоваться от TScroledWinControl?
dosik (2004-07-07 13:26:00) [3]Огромное спасибо за рекомендацию, но имелось в виду немного другое, что-то вроде TScrollBox и TImage внутри. Т.е. если рисунок вылазиет за пределы TImage (а в моем случае приклепленной канвы) и становится больше чем TScrollBox (мой компонент), то автоматически включается прокрутка.
inic (2004-07-07 10:54:00) [4]Например, я делал так:
Было приватное поле FFirstVisibleRow;
Обрабатывая WM_VSCROLL меняю это поле его, и вызываю
InvalidateRect, в связи с чем в итоге вызывается Paint.
Там рисуешь все итемы с FFirstVisibleRow до ItemsPerScreen (тоже твой метод, который возвращает ClientHeight div FRowHeight). Тоже про колонки.
Насчет InvalidateRect -неуверен, что оптимально.
Можно например часть канвы которая была видна и осталась видна смещать и дорисовывать вновь появившиеся итемы.