为什么不能在MOUSEDOWN事件中创建组件,该如何解决

为什么不能在MOUSEDOWN事件中创建组件
procedure   TForm1.FormMouseDown(Sender:   TObject;   Button:   TMouseButton;
    Shift:   TShiftState;   X,   Y:   Integer);
    var
            mylabel:TButton;
这段代码在BUTTONCLICK里就不会出问题,可是在这里就会出现错误说TBUTTON类没有定义,这是为什么.在这个过程里不能动态创建组件吗?

------解决方案--------------------
我试了没问题:

procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
with TButton.Create(self) do
begin
Left := X;
Top := Y;
Parent := self;
Caption := Format( '%d,%d ',[X,Y]);
end;
end;
------解决方案--------------------
uses StdCtrls