为什么我的 OnMouseDown 不起作用?

Z_Magic 2004-01-07 10:08:02
以下是我的代码...

unit epMoveForm1;

interface

uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
EPCtrls;

type
TepMoveForm1 = class(TepMoveForm)
private
{ Private declarations }
FOnMouseDown : TMouseEvent;
WM_LBUTTONDOWN;

protected
{ Protected declarations }
Integer); dynamic;
public
{ Public declarations }
published
{ Published declarations }
property OnMouseDown : TMouseEvent read FOnMouseDown write FOnMouseDown;
end;

procedure Register;

implementation

procedure Register;
begin
RegisterComponents('Self', [TepMoveForm1]);
end;

end.

加入控件后有了 OnMouseDown 事件但是好像按下鼠标后不起作用。
...全文
967 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
delphi_xizhousheng 2004-01-07
  • 打赏
  • 举报
回复
FOnMouseDown总的inherited吧
xyc189 2004-01-07
  • 打赏
  • 举报
回复
OnMouseDown是在TControl类中定义的,它的子类都有该事件,只要加上
published
property OnMouseDown;
end;
声明出来就可以了
Hedonism 2004-01-07
  • 打赏
  • 举报
回复
同意楼上的
Z_Magic 2004-01-07
  • 打赏
  • 举报
回复
响应的代码怎么写?
Z_Magic 2004-01-07
  • 打赏
  • 举报
回复
他的父类没有 OnMouseDown 怎么办?
xyc189 2004-01-07
  • 打赏
  • 举报
回复
我认为不是少加了什么,而是多加了一些没必要的代码,
property OnMouseDown : TMouseEvent read FOnMouseDown write FOnMouseDown;
你重新定义了一个OnMouseDown事件(覆盖了父类的OnMouseDown),但又没有给出响应的代码,
if Assigned(FonMouseDown) then FonMouseDown(...);
所以你的OnMouseDown不响应很正常,可以改为
published
property OnMouseDown;
end;
Z_Magic 2004-01-07
  • 打赏
  • 举报
回复
我这就去找,不过我还是想问一下,到底少加了什么?
iny 2004-01-07
  • 打赏
  • 举报
回复
要在
OnMouseDown
写下
inherited
Linux2001 2004-01-07
  • 打赏
  • 举报
回复
不要舍不得买书!书是最好的老师!
Linux2001 2004-01-07
  • 打赏
  • 举报
回复
我还想知道为什么你这么写就想让控件有反应叻!
去看看申旻的《Delphi高手突破》里面讲的很清楚了!

5,939

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧