Код:
type
TForm1 = class(TForm)
DBGridEh1: TDBGridEh;
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
OldWindowProc: TWndMethod;
procedure NewWindowProc(var Msg: TMessage);
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
{ TForm1 }
procedure TForm1.NewWindowProc(var Msg: TMessage);
var
p: TPoint;
begin
if Msg.Msg = WM_MOUSEWHEEL then
begin
p := Point(TWMMouseWheel(Msg).XPos, TWMMouseWheel(Msg).YPos);
if ControlAtPos(ScreenToClient(p), False, True) = DBGridEh1 then
OldWindowProc(Msg)
else
Msg.Result := 0;
end
else
OldWindowProc(Msg);
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
OldWindowProc := DBGridEh1.WindowProc;
DBGridEh1.WindowProc := NewWindowProc;
end;
__________________
Грамотно поставленный вопрос содержит не менее 50% ответа.
Грамотно поставленная речь вызывает уважение, а у некоторых даже зависть.
|