讨论关于控件制作过程中的WINDOWS消息及构件消息! 在控件开发中我们经常需要截获控件的部分消息以期达到我们的目的,但如何才能有效的捕获这些消息以及在这些消息是如何实现,请大家都来谈谈!! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 我觉得比c++中方便多了,基本步骤:1.定义事件类型,即自己的事件类型。2.定义消息驱动函数,即当消息触发时直接转入执行的过程。3.在驱动函数中做某些事情,或判断用户是否写入事件,并执行事件代码。下面是一个能接收鼠标进入和移出消息的peedButton。例子: TMouseEnterEvent=Procedure(Sender:TObject) of Object; //定义事件类型 TMouseExitEvent=procedure(Sender:TObject) of Object; TMSpeedButton = class(TSpeedButton) private FMOuseEnter: TMouseEnterEvent; FMouseExit: TMouseExitEvent; protected procedure MouseEnterMsg(Var Message:TMessage);message CM_MOUSEENTER;//消息驱动函数 procedure MouseExitMsg(Var Message:TMessage);message CM_MOUSELEAVE; procedure Loaded;override; public { Public declarations } published property OnMouseEnter: TMouseEnterEvent read FMouseEnter write FMouseEnter; property OnMouseExit: TMouseExitEvent read FMouseExit write FMouseExit; end;procedure Register;implementationuses DpkRes;procedure Register;begin RegisterComponents('simple', [TMSpeedButton]);end;procedure TMspeedButton.MouseEnterMsg(Var Message:TMessage);begin inherited; if Assigned(FMouseEnter) then FMouseEnter(self);end;procedure TMspeedButton.MOuseExitMsg(Var Message:TMessage);begin inherited; if Assigned(FmouseExit) then //判断用户是否写入事件代码,如果有则执行 FMOuseExit(self);end;end; 【明年差不多这个时候,我女儿就要出生了,大家帮忙想个名....】 很奇怪的问题,大家都来看一下啊 100相送 摆在小弟面前的难题,急急!!!请指教!关于数据库的插值问题 百分提问:如何制作Delphi的安装包 存储过程问题?!~~~~ 在线讨论向存储过程传递参数的问题 TShellTreeView和TShellListView怎样实现鼠标拖动文件复制或移动? 有没有 IP Address Control 控件? 调用VC的DLL问题 求帮助,求指教 WM_MouseMove的问题.急,在线等 提问:实现DBGrid的多表头.
2.定义消息驱动函数,即当消息触发时直接转入执行的过程。
3.在驱动函数中做某些事情,或判断用户是否写入事件,并执行事件代码。下面是一个能接收鼠标进入和移出消息的peedButton。例子: TMouseEnterEvent=Procedure(Sender:TObject) of Object; //定义事件类型
TMouseExitEvent=procedure(Sender:TObject) of Object;
TMSpeedButton = class(TSpeedButton)
private
FMOuseEnter: TMouseEnterEvent;
FMouseExit: TMouseExitEvent;
protected
procedure MouseEnterMsg(Var Message:TMessage);message CM_MOUSEENTER;//消息驱动函数
procedure MouseExitMsg(Var Message:TMessage);message CM_MOUSELEAVE;
procedure Loaded;override;
public
{ Public declarations }
published
property OnMouseEnter: TMouseEnterEvent read FMouseEnter write FMouseEnter;
property OnMouseExit: TMouseExitEvent read FMouseExit write FMouseExit;
end;procedure Register;implementation
uses DpkRes;procedure Register;
begin
RegisterComponents('simple', [TMSpeedButton]);
end;procedure TMspeedButton.MouseEnterMsg(Var Message:TMessage);
begin
inherited;
if Assigned(FMouseEnter) then
FMouseEnter(self);
end;procedure TMspeedButton.MOuseExitMsg(Var Message:TMessage);
begin
inherited;
if Assigned(FmouseExit) then //判断用户是否写入事件代码,如果有则执行
FMOuseExit(self);
end;end;