我有一个事件处理程序作为窗体的成员函数。我想对另一个窗体中的事件重复使用这个处理程序,该窗体包含在它自己的单元中。但是,我无法使用对象检查器分配处理程序。
在[1]中,问题似乎已经解决,允许处理程序对第二个窗体进行"可见性",尽管我不知道这如何应用于c++(生成器)。
我认为最好不要将处理程序定义为成员函数。对此,最好的方法是什么?
感谢
[1] 如何从另一个处理程序调用按钮单击事件处理程序?(c#)
您也可以在代码本身中分配事件处理程序,而无需使用对象检查器。例如
TButton* pButton = new TButton(NULL);
pButton->OnClick = MyCustomButtonClickHandlerFunction;
当然,您的自定义事件处理程序函数原型必须与所讨论的事件处理程序的原型相同。我一直在使用这种东西,因为当您动态创建表单时,无论如何都无法使用对象检查器。
在您的情况下,从另一个类分配事件处理程序可能不合适,尽管这取决于该类以及函数访问内部成员的方式。如果您可以将处理程序重新设计为不是成员函数,我不明白为什么不能将其用于两个类。我使用过其他类的成员函数作为窗体、按钮和其他GUI对象的事件处理程序,尽管VCL对象通常是作为该类的成员变量动态创建的。