控件的事件触发(100分)

  • 主题发起人 主题发起人 scovnil
  • 开始时间 开始时间
S

scovnil

Unregistered / Unconfirmed
GUEST, unregistred user!
我编写一个控件,增加它父类没有事件,我应该怎样才能触发它(怎样发送消息[:)])
 
[转贴]

最精悍而又有效的控件!
该控件可以添加鼠标离开事件,即监测鼠标的移动离开目标的过程。

unit MyImg;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms,
ExtCtrls;
type
TMyImage = class(TImage)
private
FOnMouseLeave: TNotifyEvent;
procedure CMMouseLeave(var Message: TMessage); message CM_MOUSELEAVE;
protected
public
published
property OnMouseLeave: TNotifyEvent read FOnMouseLeave write FOnMouseLeave;
end;

procedure Register;

implementation

procedure Register;
begin
RegisterComponents('Samples', [TMyImage]);
end;

procedure TMyImage.CMMouseLeave(var Message: TMessage);
begin
inherited;
if Assigned(FOnMouseLeave) then FOnMouseLeave(Self);
end;

end.
 
先声明一个事件类
如:
TEvent_Name = procedure(Sender: TObject; Count: Integer) of object;
再声明一个全局变量:
FEvent_Name : TEvent_Name;
在需要触发时: if Assigned(FEvent_Name) then FEvent_Name(Sender, Count);
别忘了给用户接管的声明:
property Event_Name: TEvent_Name read FEvent_Name write FEvent_Name;
 
后退
顶部