Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Delphi Новый топик    Ответить
 Как запретить прокрутку колесом мыши в сетке DBGridEh?  [new]
svnvlad
Member

Откуда:
Сообщений: 1947
Подсмотрел вот такое решение, но оно работает только когда мышь находится внутри сетки. Если мышь за пределами сетки, крутишь колесо, и сетка прокручивается.

1. На конструкторе формы:
   FGridWndProc := DBGridEh1.WindowProc;
   DBGridEh1.WindowProc := DbGridWindowProc;

Новый обработчик:
procedure TAnyForm.DbGridWindowProc(var Msg: TMessage);
begin
   case Msg.Msg of
      WM_MOUSEWHEEL:
         exit;
   end;

   if Assigned(FGridWndProc) then
      FGridWndProc(Msg);
end;
8 июл 18, 12:48    [21553665]     Ответить | Цитировать Сообщить модератору
 Re: Как запретить прокрутку колесом мыши в сетке DBGridEh?  [new]
ma1tus
Member

Откуда:
Сообщений: 575
svnvlad,

  public
    procedure MouseWheelHandler(var Message: TMessage); override;

procedure TForm1.MouseWheelHandler(var Message: TMessage);
begin
  if not (ActiveControl = DBGridEh1) then
    inherited MouseWheelHandler(Message);
end;
9 июл 18, 07:43    [21554877]     Ответить | Цитировать Сообщить модератору
 Re: Как запретить прокрутку колесом мыши в сетке DBGridEh?  [new]
svnvlad
Member

Откуда:
Сообщений: 1947
ma1tus, спасибо, работает!
Есть еще одна интересная задача, обратная:
Сейчас в дельфи нужно обязательно щелкнуть по компоненту, чтобы он приобрел фокус.
А сейчас модно, чтобы компонент приобретал фокус по наведению мыши, т.е. достаточно, чтобы мышь находилась над компонентом, и можно скроллить. Как это сделать?
9 июл 18, 11:54    [21555574]     Ответить | Цитировать Сообщить модератору
 Re: Как запретить прокрутку колесом мыши в сетке DBGridEh?  [new]
Valery_B
Member

Откуда: Москва
Сообщений: 1799
svnvlad,

Тоже самое, только с методом ControlAtPos ?
9 июл 18, 12:02    [21555605]     Ответить | Цитировать Сообщить модератору
 Re: Как запретить прокрутку колесом мыши в сетке DBGridEh?  [new]
ma1tus
Member

Откуда:
Сообщений: 575
svnvlad
интересная задача
ну, как скажете...
9 июл 18, 13:47    [21556103]     Ответить | Цитировать Сообщить модератору
Все форумы / Delphi Ответить