![]() |
![]() ![]() ![]() ![]() ![]() |
![]() |
Корректная работа при работе с колесиком мышки в TDBGridDelphi , Компоненты и Классы , TDBGridКорректная работа при работе с колесиком мышки в TDBGrid
Оформил: DeeCo {....} public procedure AppMessage(var Msg: TMsg; var Handled: Boolean); {....} procedure TForm1.AppMessage(var Msg: TMsg; var Handled: Boolean); var i: SmallInt; begin {Mouse wheel behaves strangely with dgbgrids - this proc sorts this out} if Msg.message = WM_MOUSEWHEEL then begin Msg.message := WM_KEYDOWN; Msg.lParam := 0; i := HiWord(Msg.wParam); if i > 0 then Msg.wParam := VK_UP else Msg.wParam := VK_DOWN; Handled := False; end; end; // Und im Projekt Source: // And in the project source: {....} Application.OnMessage := Form1.AppMessage; {....} Программный код, предназначенный для обработки событий прокрутки мыши в компоненте TDBGrid приложения Delphi. Ошибка в стандартном поведении прокрутки мыши при взаимодействии с TDBGrid заключается в том, что она может быть неожиданной и не работать как ожидалось. Процедура Когда пользователь прокручивает мышь вверх, код имитирует нажатие клавиши VK_UP (обычно обрабатывается событием Код устанавливает параметр В проекте источника процедура
Это обеспечивает, что все отправленные на приложение сообщения обрабатываются процедурой В проекте источника также предлагается альтернативное решение с использованием события TDBGridOnMouseWheel вместо переопределения события Application.OnMessage. Это может быть более эффективным и проще для поддержки:
В этом примере обработчик события Это может обеспечить более прямой способ обработки событий прокрутки мыши в TDBGrid без переопределения события Application.OnMessage. Корректная работа при работе с колесиком мышки в TDBGrid обеспечивается за счет обработки сообщения WM_MOUSEWHEEL и преобразования его в WM_KEYDOWN для корректной работы со строками. Комментарии и вопросыПолучайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.
|
||||
©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007 |