**Автоматическое отслеживание прокрутки в TListView без создания подкласса**Delphi , Компоненты и Классы , TListViewАвтоматическое отслеживание прокрутки в TListView без создания подклассаПри работе с компонентом ПроблемаКомпонент Подтвержденный ответРассмотрим несколько подходов к решению данной проблемы:
```pascal type TListView = class(ComCtrls.TListView) protected procedure WndProc(var Message: TMessage); override; end; procedure TListView.WndProc(var Message: TMessage); begin inherited; case Message.Msg of WM_HSCROLL, WM_VSCROLL: // Действия при прокрутке end; end; ```
```pascal type TListView = class(ComCtrls.TListView) protected procedure WMVScroll(var Message: TWMVScroll); message WM_VSCROLL; end; procedure TListView.WMVScroll(var Message: TWMVScroll); begin inherited; // Действия при вертикальной прокрутке end; ```
```pascal procedure TForm1.FormCreate(Sender: TObject); begin // Подписка на события приложения end; // Функция проверки положения полосы прокрутки function GetScrollPos(Handle: THandle; Bar: Integer): Integer; stdcall; ```
```pascal type TNanikForm = class(TForm) ListView: TListView; private FPrevListViewProc: TWndMethod; procedure ListViewWndProc(var Msg: TMessage); public procedure Loaded; override; end; procedure TNanikForm.ListViewWndProc(var Msg: TMessage); begin if Msg.Message = wm_VScroll then // Действия при вертикальной прокрутке else FPrevListViewProc(Msg); end; procedure TNanikForm.Loaded; begin inherited; FPrevListViewProc := ListView.WindowProc; ListView.WindowProc := ListViewWndProc; end; ``` Альтернативный ответВозможен также подход с использованием уведомлений от ЗаключениеВ зависимости от конкретных требований и предпочтений разработчика, можно выбрать один из предложенных методов для отслеживания прокрутки в Контекст: Вопрос о том, как реализовать отслеживание прокрутки в компоненте `TListView` в Delphi без создания подкласса. Комментарии и вопросыПолучайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.
|
||||
©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007 |