为什么以下几种情况都 不行,(重载事件)(0分)

  • 主题发起人 主题发起人 诸葛不才
  • 开始时间 开始时间

诸葛不才

Unregistered / Unconfirmed
GUEST, unregistred user!
1、直接重载基类事件(用虚类)
TClickButton : Public TButton
virtual void __fastcall Click(TObject *Sender)

TClickButton::Click(TObject *Sender)
{
...//加入自已的代码,并在以后的类中使其可重载
}
可在执行时又出现了TClickButton::Click hides TButton::Click(),我不是已经用了虚重载了吗,怎么还会说会隐藏了基类的Click事件呢?
2、仿照Delphi的
TNotifyEvent FOnClick;
void __fastcall FClick(TObject *Sender)
__property OnClick = {read = FOnClick,write = FOnClick}

然后在类的构造函数中
this->OnClick = FClick;

然后在FClick中
TClickButton::FClick(TObject *Sender)
{
ShowMessage("Yes");这一句,在对象中实现不了
if (FOnClick)
FOnClick(this)
}
这个跟D一模一样,但是却怎样也执行不对,并且给对象的OnClick
赋值时,却说连整个OnClick都不能理解,这是为什么,控件高手们,help
 
TClickButton::Click(TObject *Sender)
{
TButton::Click(TObject *Sender);
...//加入自已的代码,并在以后的类中使其可重载
}
 
后退
顶部