代码有问题吗?为什么OnMouseDown可行,OnClick就不行了呢?
谢谢指教。unit FlatButton;interfaceuses
  SysUtils, Classes, Controls, StdCtrls, Messages, Graphics, windows, ExtCtrls, buttons,forms,CommCtrl;type
  TFlatButton = class(TCustomControl)  private
    { Private declarations }  protected
    { Protected declarations }  public
    { Public declarations }
    constructor Create(AOwner:TComponent);override;
    destructor Destroy;override;
    procedure Click;override;
    procedure MouseDown(Button: TMouseButton; Shift: TShiftState; X, Y: Integer); override;  published
    { Published declarations }
    property OnClick;
    property OnMouseDown;  end;procedure Register;implementationconstructor TFlatbutton.Create(AOwner:TComponent);
begin
    inherited create(AOwner);
    ControlStyle := [csOpaque, csDoubleClicks];
end;destructor TFlatbutton.Destroy;
begin
    inherited Destroy;
end;procedure TFlatButton.Click;
begin
  inherited Click;
end;procedure TFlatButton.MouseDown (Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
    inherited MouseDown(Button, Shift, X, Y);
end;procedure Register;
begin
    RegisterComponents('Samples', [TFlatButton]);
end;
end.

解决方案 »

  1.   

    constructor TFlatbutton.Create(AOwner:TComponent);
    begin
        inherited create(AOwner);
        ControlStyle := [csOpaque, csDoubleClicks, csClickEvents];
    end;—————————————————————————————————
    宠辱不惊,看庭前花开花落,去留无意;毁誉由人,望天上云卷云舒,聚散任风。
    —————————————————————————————————