Articles

Use CM_MOUSEENTER and CM_MOUSELEAVE messages:

  TYourObject = class(TAnyControl)
  ...
  private
    procedure CMMouseEnter(var AMsg: TMessage); message CM_MOUSEENTER;
    procedure CMMouseLeave(var AMsg: TMessage); message CM_MOUSELEAVE;
  ...
  end;

implementation

procedure TYourObject.CMMouseEnter(var AMsg: TMessage);
begin
  ParentColor:=False;
  Color:=clHighlightText;
end;

procedure TYourObject.CMMouseLeave(var AMsg: TMessage);
begin
  ParentColor:=True;
end;