Delphi 1
Перехват события компонента DBGrid MouseDown
...вот совпадение. Я потолько что отвечал на другой вопрос, где меня также спрашивали как перехватить событие DBGrid MouseDown:
Вам необходимо создать класс-наследник TDBGrid и перекрыть процедуру MouseDown. Вот код, который реально работает у меня:
TMyDBGrid = class(TDBGrid)
procedure MouseDown(Button: TMouseButton; Shift: TShiftState;
X, Y: Integer); override;
end;
procedure TMyDBGrid.MouseDown(Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begininherited MouseDown(Button, Shift, X, Y);
{ Здесь делайте что хотите, можете погудеть в системный рожок }
MessageBeep(mb_Ok);
end;--------- покоцано -------------- unit MyDBGrid; interface uses SysUtils, WinTypes, WinProcs, Messages, Classes, Graphics, Controls,
Forms, Dialogs, Grids, DBGrids;
type TMyDBGrid = class(TDBGrid)
private
{ Private declarations }
protected
{ Protected declarations }
procedure MouseDown(Button: TMouseButton; Shift: TShiftState;
X, Y: Integer); override;
public
{ Public declarations }
published
{ Published declarations }
property OnMouseDown;
end;
procedure Register; implementation procedure TMyDBGrid.MouseDown(Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
varFOnMouseDown: TMouseEvent;
begininherited MouseDown(Button, Shift, X, Y);
FOnMouseDown := OnMouseDown;
if Assigned(FOnMouseDown) then FOnMouseDown(Self, Button, Shift, X, Y);
end;
|
[000411]