Title: Flat/Hot track effect for components
Question: How can I add the hot track effect to my component?
Answer:
If you want to add a useful feature to your component (like URL in html or PageControl/TabControl.HotTrack) you must handle the CM_MOUSEENTER and CM_MOUSELEAVE messages:
type
TyourControl = class(TDescControl)
private
{ Private declarations }
FLinkFont: TFont;
FPassiveFont: TFont;
procedure CMMouseEnter(var Msg: TMessage); message CM_MOUSEENTER;
procedure CMMouseLeave(var Msg: TMessage); message CM_MOUSELEAVE;
end;
implementation
procedure TyourControl.CMMouseEnter(var Msg: TMessage);
begin
//Change color when mouse is over control
Font.Assign(FLinkFont);
end;
procedure TyourControl.CMMouseLeave(var Msg: TMessage);
begin
//Change color when mouse leaves control
Font.Assign(FPassiveFont);
end;
As example, you can view a sources of the TURLLabel and/or THighLightLabel components on my site (http://www.geocities.com/mshkolnik).