Нашел в нете пример и дабы он не пропал, выкладываю сюда, авось кому-то будет полезен (где-то подобное встречал для TLabel).
Пример расширеного компонента TImage, в котором добавлены события "OnMouseLeave" и "OnMouseEnter" возникающие при появлении / исчезании мыши на изображении (на компоненте TImage).
Код:
unit ExtImage;
interface
uses
Controls, ExtCtrls, Messages, Classes, Graphics;
type
TCustomExtImage = class(TImage)
private
FOnMouseLeave: TNotifyEvent;
FOnMouseEnter: TNotifyEvent;
procedure CMMouseEnter(var Message: TMessage); message CM_MOUSEENTER;
procedure CMMouseLeave(var Message: TMessage); message CM_MOUSELEAVE;
protected
property OnMouseEnter: TNotifyEvent read FOnMouseEnter write FOnMouseEnter;
property OnMouseLeave: TNotifyEvent read FOnMouseLeave write FOnMouseLeave;
procedure MouseEnter; virtual;
procedure MouseLeave; virtual;
end;
TExtImage = class(TCustomExtImage)
published
property OnMouseEnter;
property OnMouseLeave;
end;
procedure Register;
implementation
procedure Register;
begin
RegisterComponents('Supplement', [TExtImage]);
end;
{ TCustomExtImage }
procedure TCustomExtImage.CMMouseEnter(var Message: TMessage);
begin
MouseEnter;
end;
procedure TCustomExtImage.CMMouseLeave(var Message: TMessage);
begin
MouseLeave;
end;
procedure TCustomExtImage.MouseEnter;
begin
if Assigned(FOnMouseEnter) then
FOnMouseEnter(Self);
end;
procedure TCustomExtImage.MouseLeave;
begin
if Assigned(FOnMouseLeave) then
FOnMouseLeave(Self);
end;
end.