Показать сообщение отдельно
  #4  
Старый 14.03.2018, 15:49
Аватар для Alegun
Alegun Alegun вне форума
LMD-DML
 
Регистрация: 12.07.2009
Адрес: Богородское
Сообщения: 3,025
Версия Delphi: D7E
Репутация: 1834
По умолчанию

А вот отключалка по имени класса получилась и на простой DBGrid работает
Код:
uses Messages;
...

type
  TfrmMain = class(TForm)
  DBGrid1: TDBGrid;
 procedure FormCreate(Sender: TObject);
  procedure DbGridWindowProc(var Msg: TMessage);
...
private
   FGridWndProc: TWndMethod;
    { Private declarations }
...
procedure TfrmMain.FormCreate(Sender: TObject);
begin
 FGridWndProc := DBGrid1.WindowProc;
 DBGrid1.WindowProc := DbGridWindowProc;
end;
procedure TfrmMain.DbGridWindowProc(var Msg: TMessage);
var
 hWnd: THandle;
 rPos: TPoint;
 aName: array [0..255] of Char;
 begin
 case Msg.Msg of
      WM_MOUSEWHEEL:
       if Boolean(GetCursorPos(rPos)) then
       begin
        hWnd:= WindowFromPoint(rPos);
        GetClassName(hWnd, aName, 256);
        if string(aName) <> 'TDBGrid' then exit;
       end;
   end;
   if Assigned(FGridWndProc) then  FGridWndProc(Msg);
end;
только имя поменять
Ответить с цитированием