想作一个label控件,当鼠标进入的时候改变字体,离开的时候还原,但是,在create里用FCommFont.Assign(Font);保存最初的字体的时候,好象这一句没有起作用,请问这是为什么?!错在哪儿?应该怎么解决?!unit LabelButton;interfaceuses
  Windows, Messages, SysUtils, Classes, Controls, StdCtrls, Graphics;type
  TLblBtn = class(TLabel)
  private
    { Private declarations }
    FActiveFont: TFont;        //鼠标进入后的字体
    FCommFont: TFont;          //鼠标离开后正常情况的字体
    FDisabledFont: TFont;      //不可用时的字体
    procedure SetActiveFont(value: TFont);
    procedure SetDisabledFont(value: TFont);    procedure CMMouseEnter(var Message: TMessage); message CM_MOUSEENTER;
    procedure CMMouseLeave(var Message: TMessage); message CM_MOUSELEAVE;
    procedure CMEnabledChanged(var Message: TMessage); message CM_ENABLEDCHANGED;  protected
    { Protected declarations }
    //procedure SetFont(Value: TFont);
  public
    { Public declarations }
    destructor Destroy; override;
    constructor Create(aOwner: TComponent); override;
  published
    { Published declarations }
    property ActiveFont: TFont read FActiveFont write SetActiveFont;
    property DisabledFont: TFont read FDisabledFont write SetDisabledFont;  end;procedure Register;implementationprocedure Register;
begin
  RegisterComponents('Caidao', [TLblBtn]);
end;constructor TLblBtn.Create(aOwner: TComponent);
begin
  inherited Create(aOwner);
  Transparent :=true;
  FActiveFont := TFont.Create;
  FCommFont := TFont.Create;
  FDisabledFont := TFont.Create;  FCommFont.Assign(Font);        //就是这一句好象没有起作用!
end;destructor TLblBtn.Destroy;
begin
  FCommFont.Free;
  FActiveFont.Free;
  FDisabledFont.Free;
  inherited Destroy;
end;
procedure TLblBtn.SetActiveFont(value: TFont);
begin
  //if Assigned(value) then FCommFont.Assign(value);
  FCommFont.Assign(value);
end;procedure TLblBtn.SetDisabledFont(value: TFont);
begin
  //if Assigned(value) then FDisabledFont.Assign(value);
  FDisabledFont.Assign(value);
end;procedure TLblBtn.CMEnabledChanged(var Message: TMessage);
begin
  inherited;
  if Enabled then
    Font.Assign(FCommFont)
  else
    Font.Assign(FDisabledFont);
end;procedure TLblBtn.CMMouseEnter(var Message: TMessage);
begin
  inherited;
  if Enabled then Font.Assign(FActiveFont);
end;procedure TLblBtn.CMMouseLeave(var Message: TMessage);
begin
  inherited;
  if Enabled then Font.Assign(FCommFont);
end;end.