unit HotLink;interfaceuses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls;type
THotLink = class(TLabel)
private
{ Private declarations }
FMouseInControl: Boolean;
DefaultFontColor:TColor;
procedure CMMouseEnter(var Message: TMessage); message CM_MOUSEENTER;
procedure CMMouseLeave(var Message: TMessage); message CM_MOUSELEAVE; protected
{ Protected declarations } public
{ Public declarations }
published
{ Published declarations }
end;implementation
procedure THotLink.CMMouseEnter(var Message: TMessage);
begin
inherited;
DefaultFontColor:=Font.Color;
if not FMouseInControl and Enabled then begin
FMouseInControl := True;
// Font.Color := RGB(255,0,0); //这句话,在D7我注释掉了,因为变红了就不回来了
Font.Style := [fsUnderline];
Cursor := crHandPoint ;
end;
end;procedure THotLink.CMMouseLeave(var Message: TMessage);
begin
inherited;
if FMouseInControl and Enabled then begin
FMouseInControl := False;
// MouseLeave;
Font.Color := DefaultFontColor;
Font.Style := [];
end;
end;end.
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls;type
THotLink = class(TLabel)
private
{ Private declarations }
FMouseInControl: Boolean;
DefaultFontColor:TColor;
procedure CMMouseEnter(var Message: TMessage); message CM_MOUSEENTER;
procedure CMMouseLeave(var Message: TMessage); message CM_MOUSELEAVE; protected
{ Protected declarations } public
{ Public declarations }
published
{ Published declarations }
end;implementation
procedure THotLink.CMMouseEnter(var Message: TMessage);
begin
inherited;
DefaultFontColor:=Font.Color;
if not FMouseInControl and Enabled then begin
FMouseInControl := True;
// Font.Color := RGB(255,0,0); //这句话,在D7我注释掉了,因为变红了就不回来了
Font.Style := [fsUnderline];
Cursor := crHandPoint ;
end;
end;procedure THotLink.CMMouseLeave(var Message: TMessage);
begin
inherited;
if FMouseInControl and Enabled then begin
FMouseInControl := False;
// MouseLeave;
Font.Color := DefaultFontColor;
Font.Style := [];
end;
end;end.
你跟踪一下DefaultFontColor,它肯定被你改变了。