重载TEdit控件的Exit事件竟然没有什么效果(100分)

W

woodmud

Unregistered / Unconfirmed
GUEST, unregistred user!
我想重载TEdit控件的Exit事件,下面是我的代码:
class PACKAGE TExitEdit:public TEdit
{
private:
protected:
DYNAMIC void __fastcall Exit();
public:
__fastcall TExitEdit(TComponent* Owner);
__published:
};
void __fastcall TExitEdit::Exit()
{
ShowMessage("Exit");
}
但是当焦点离开这个TExitEdit控件的时候,什么事情都没有发生。请问各位大虾这是什么原因?
 
事件不能重载,事件只是由调用程序赋值的一个函数指针而已,你可以:
1、由子类给父类的指针赋值,在赋值的函数中加入ShowMessage,然后再调用子类声明的一个函数指针,把该指针作事件声明给调用程序使用。
2、找出父类中调用Exit指针的函数,重载该函数。
 
class PACKAGE TExitEdit:public TEdit
{
private:
protected:
public:
__published:
DYNAMIC void __fastcall Exit(void);
};
void __fastcall TExitEdit::Exit(void)
{
TEdit::Exit();//再前边的时候就先出发你在外部写的代码,在后就后触发
ShowMessage("Exit");
}
 
要重载CM_MouseLeave消息。
 

Similar threads

D
回复
0
查看
916
DelphiTeacher的专栏
D
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
I
回复
0
查看
705
import
I
顶部