OnMouseEnter i OnMouseLeave dla TImage
PiXel
Zauważyliście pewnie, że TLabel posiada zdarzenia OnMouseEnter i OnMouseLeave. Są wywołane wtedy gdy mysz najedzie i opuści komponent. Niestety Borland spieprzył sprawę i nie dał tych zdarzeń dla TImage co często bywa niewygodne. Zrobimy nowy komponent TImageHover który jest potomny TImage i wyposażymy go w te zdarzenia.
Tworzymy nowy unit i zapisujemy jako ImageHover.pas.
unit ImageHover;
interface
uses
Controls, ExtCtrls, Classes, Messages;
type
TImageHover = class(TImage)
private
FEnter: TNotifyEvent;
FLeave: TNotifyEvent;
procedure CMMouseEnter(var msg: TMessage); message CM_MOUSEENTER;
procedure CMMouseLeave(var msg: TMessage); message CM_MOUSELEAVE;
published
property OnMouseEnter: TNotifyEvent read FEnter write FEnter;
property OnMouseLeave: TNotifyEvent read FLeave write FLeave;
end;
procedure Register;
implementation
procedure TImageHover.CMMouseEnter(var msg: TMessage);
begin
if Assigned(FEnter) then FEnter(Self);
end;
procedure TImageHover.CMMouseLeave(var msg: TMessage);
begin
if Assigned(FLeave) then FLeave(Self);
end;
procedure Register;
begin
RegisterComponents('Win32', [TImageHover]);
end;
end.
Następnie Component -> Install Component i klikamy ok. Następnie klikamy Compile na otwartej paczce. Nowy komponent zostanie zainstalowany na zakładce Win32.