DelphiFAQ Home Search:

Highlight a component when the mouse moves towards it

 

commentsThis article has not been rated yet. After reading, feel free to leave comments and rate it.

Use CM_MOUSEENTER and CM_MOUSELEAVE messages to trap the mouse movements and set a flag.
When painting the component, use this flag like shown here:

class
  TMyLabel = class(TLabel)  
    //..  
  private
    FMouseInPos : Boolean;
    procedure CMMouseEnter(var AMsg: TMessage); message CM_MOUSEENTER;
    procedure CMMouseLeave(var AMsg: TMessage); message CM_MOUSELEAVE;
    //..  end;

implementation

procedure TMyLabel.CMMouseEnter(var AMsg: TMessage);
begin
  FMouseInPos := True;
  Refresh;
end;

procedure TMyLabel.CMMouseLeave(var AMsg: TMessage);
begin
  FMouseInPos := False;
  Refresh;
end;

// read FMouseInPos when painting the control:
procedure TMyLabel.Paint;
begin
  if FMouseInPos then
    Font.Color := clBlack
  else
    Font.Color := clRed; // display an active link in red
  inherited;
end;
You don't like the formatting? Check out SourceCoder then!

Comments:

 

 

NEW: Optional: Register   Login
Email address (not necessary):

Rate as
Hide my email when showing my comment.
Please notify me once a day about new comments on this topic.
Please provide a valid email address if you select this option, or post under a registered account.
 

Show city and country
Show country only
Hide my location
You can mark text as 'quoted' by putting [quote] .. [/quote] around it.
Please type in the code:

Please do not post inappropriate pictures. Inappropriate pictures include pictures of minors and nudity.
The owner of this web site reserves the right to delete such material.

photo Add a picture: