代码有问题吗?为什么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.
谢谢指教。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.
解决方案 »
- 我们都要有远大目光鉴定的〖10个参考方案 〗
- ComboBox应用的问题
- 服务器多用户登录,应用程序被运行了多次
- web services问题
- 100分请问如何自动添加一个MDI子窗口
- 关于TREEVIEW控件:
- 怎么样使treeview指向第一个节点?
- string 类型的数据可以换行么?ShowMessage中的字符串如何换行呀
- 一些初学者的问题(在线,提供资料也行)
- DELPHI 传递的消息中的问题,为什么用不了TMSG 很菜,谢谢
- 开始学delphi,大家用的是delphi7还是6?
- 关于Printer.Canvas.TextOut( x, y, 'xxxxx')中x , y尺寸的单位
begin
inherited create(AOwner);
ControlStyle := [csOpaque, csDoubleClicks, csClickEvents];
end;—————————————————————————————————
宠辱不惊,看庭前花开花落,去留无意;毁誉由人,望天上云卷云舒,聚散任风。
—————————————————————————————————