制作的控件怎样加onter与onexit事件(另赠100分) ( 积分: 20 )

  • 主题发起人 主题发起人 Baisir
  • 开始时间 开始时间
B

Baisir

Unregistered / Unconfirmed
GUEST, unregistred user!
制作的控件中怎样加onter与onexit事件
解答者请点击另有100分相赠。
http://www.delphibbs.com/delphibbs/dispq.asp?lid=3034208
在上面随便回答一下。
 
制作的控件中怎样加onter与onexit事件
解答者请点击另有100分相赠。
http://www.delphibbs.com/delphibbs/dispq.asp?lid=3034208
在上面随便回答一下。
 
找高手找高手找高手。
除赠的100分再赠20分。加上本题140分了啊。帮忙帮忙
进这里面赠。
http://www.delphibbs.com/delphibbs/dispq.asp?lid=3127879
 
继承TWinCtrol或重载TWinCtrol的
property OnEnter: TNotifyEvent read FOnEnter write FOnEnter;
property OnExit: TNotifyEvent read FOnExit write FOnExit;
 
这个方法我试过,怎么编译都通不过。
再编译还是通不过
 
看看TWinControl的代码实现吧。
procedure CMEnter(var Message: TCMEnter); message CM_ENTER;
procedure CMExit(var Message: TCMExit); message CM_EXIT;
 
试试它
procedure DoEnter; override
procedure DoExit; override;
替换
procedure T你的控件.DoEnter;
begin
if Assigned(FOnEnter) then FOnEnter(Self);
end;

procedure T你的控件.DoExit;
begin
if Assigned(FOnExit) then FOnExit(Self);
end;
 
//如果想自己写的话就这样,要不然直接继承TWinControl 就有了
unit uTest;

interface
uses
Windows, Messages, Classes, Controls;
type
TmyObject = class(TComponent)
private
FOnEnter: TNotifyEvent ;
FOnExit: TNotifyEvent;
procedure CMEnter(var Message: TCMEnter); message CM_ENTER;
procedure CMExit(var Message: TCMExit); message CM_EXIT;
protected
procedure DoEnter; dynamic;
procedure DoExit; dynamic;
published
property OnEnter: TNotifyEvent read FOnEnter write FOnEnter;
property OnExit: TNotifyEvent read FOnExit write FOnExit;
end;
procedure Register;
implementation

{ TmyObject }
procedure Register;
begin
RegisterComponents('Samples', [TmyObject]);
end;

procedure TmyObject.CMEnter(var Message: TCMEnter);
begin
DoEnter;
end;

procedure TmyObject.CMExit(var Message: TCMExit);
begin
DoExit;
end;

procedure TmyObject.DoEnter;
begin
if Assigned(FOnEnter) then FOnEnter(Self);
end;

procedure TmyObject.DoExit;
begin
if Assigned(FOnExit) then FOnExit(Self);
end;
 
谢谢大家了啊。接受答案了。
请到
http://www.delphibbs.com/delphibbs/dispq.asp?lid=3034208
随便回复一下,大家把那100分也分了吧。
jennykiller,jfyes的测试通过。
kk2000,我没测试,看起来都差不多,请到那边,都有分相赠。
 
多人接受答案了。
 
后退
顶部