Один квакеp говоpит дpугому:
- Hу что, пошли на pыбалку?
- Сейчас, только Thunderbolt возьму!
// KEYWORDS: SendMessage, WM_HSCROLL, WM_VSCROLL// scroll a ListView vertically down
SendMessage(ListView1->Handle, WM_VSCROLL, SB_LINEDOWN, 0);
// scroll a TreeView vertically up
SendMessage(TreeView1->Handle, WM_VSCROLL, SB_LINEUP, 0);
// Here are some other scroll parameters that can be sent...{
SB_BOTTOM Scrolls to the lower right.
SB_ENDSCROLL Ends scroll.
SB_LINEDOWN Scrolls one line down.
SB_LINEUP Scrolls one line up.
SB_PAGEDOWN Scrolls one page down.
SB_PAGEUP Scrolls one page up.
SB_TOP Scrolls to the upper left.
}
Программирование на языке Delphi: скроллинг TListView и TTreeView
В этом коде демонстрируется, как скроллить контролы TListView или TTreeView с помощью функции Windows API SendMessage. Функция SendMessage отправляет сообщение в окно, а в этом случае - скроллинговое сообщение для скроллинга списка или дерева вертикально.
Используемые скроллинговые сообщения:
WM_VSCROLL: Вертикальное скроллинговое сообщение
SB_LINEUP, SB_LINEDOWN, SB_PAGEUP и SB_PAGEDOWN: Скроллить на одну строку или страницу вверх/вниз
Кроме того, я добавил предложение альтернативного решения с использованием методов скроллинга VCL. Это может быть использовано как альтернатива SendMessage, если вы предпочитаете более язык-специфичный подход.
Обратите внимание, что эти коды должны выполняться в основном потоке вашей приложения, и также убедитесь, что контролы видимы и включены перед попыткой скроллинга их.
Прокрутка для TListView или TTreeView может быть выполнена с помощью функции SendMessage, отправляющей сообщения WM_HSCROLL и WM_VSCROLL.
Комментарии и вопросы
Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS