Gente lo pude solucionar de una manera tal vez no muy elegante.. diganme si hay una manera mejor porfavor..
Hice lo siguiente:
Código Delphi
[-]
... ..
..
private
.....
....
......
...
FOnMouseDown : TMouseEvent;
FOnMouseMove : TMouseMoveEvent;
FOnMouseUp : TMouseEvent;
procedure MiClaseOnMouseDown (Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
procedure MiClaseOnMouseMove (Sender: TObject; Shift: TShiftState; X, Y: Integer);
procedure MiClaseOnMouseUp (Sender: TObject; Button: TMouseButton;
...
.. .
... ..
..
protected
...
.....
...
property OnMouseDown;
property OnMouseMove;
property OnMouseUp;
...
.....
...
published
......
...
.....
property MouseDown : TMouseEvent read FOnMouseDown write FOnMouseDown; property MouseMove : TMouseMoveEvent read FOnMouseMove write FOnMouseMove; property MouseUp : TMouseEvent read FOnMouseUp write FOnMouseUp;
end;
....
...
....
constructor TMiClase.Create (AOwner : TComponent);
begin
Inherited Create (AOwner);
....
..
.....
....
OnMouseDown := MiClaseOnMouseDown;
OnMouseMove := MiClaseOnMouseMove;
OnMouseUp := MiClaseOnMouseUp;
...
....
..
.....
end;
...
....
.
....
procedure TMiClase.MiClaseOnMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);
begin
.....
...
.....
..
if Assigned (FOnMouseMove) then
FOnMouseMove(Sender, Shift, X, Y); end;
....
..
....