delphi动态创建tspeedbutton怎么写事件

delphi动态创建tspeedbutton如何写事件?
delphi动态创建了一组tspeedbutton按钮如何给这些按钮写上OnMouseDown,OnMouseLeave,onClick等事件呢?

------解决方案--------------------
如下:


unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, Buttons;

type
  TForm1 = class(TForm)
    Button1: TButton;
    Memo1: TMemo;
    procedure Button1Click(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
  private
    { Private declarations }
    ASpeedBtn: TSpeedButton;
    procedure ASpeedBtnClick(Sender: TObject);
    procedure ASpeedBtnMouseDown(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.ASpeedBtnClick(Sender: TObject);
begin
  Memo1.Lines.Add('ASpeedBtnClick');
end;

procedure TForm1.ASpeedBtnMouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
  Memo1.Lines.Add('ASpeedBtnMouseDown');
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  if not Assigned(ASpeedBtn) then
  begin
    ASpeedBtn := TSpeedButton.Create(Self);
    ASpeedBtn.Parent := Self;
    ASpeedBtn.SetBounds(100, 100, 100, 30);
    ASpeedBtn.Caption := '123';
    ASpeedBtn.OnMouseDown := ASpeedBtnMouseDown;
    //ASpeedBtn.OnMouseLeave := ; //SpeedButton没有这个事件
    ASpeedBtn.OnClick := ASpeedBtnClick;