0

我有一个事件处理程序作为表单的成员函数。我想将此处理程序重新用于另一个表单中的事件,包含在它自己的单元中。但是,我无法使用对象检查器分配处理程序。

在 [1] 中,问题似乎已解决,使处理程序的“可见性”变为第二种形式,尽管我不知道这如何适用于 c++(builder)。

我认为不将处理程序定义为成员函数会更聪明。最好的方法是什么?

谢谢和最好的问候

[1]如何从另一个处理程序调用/调用按钮单击事件处理程序?(C# )

4

1 回答 1

1

您还可以在代码本身中分配事件处理程序,而无需使用对象检查器。例如

   TButton* pButton = new TButton(NULL);
   pButton->OnClick = MyCustomButtonClickHandlerFunction;

当然,您的自定义事件处理程序函数原型必须与相关事件处理程序的原型相同。我一直在使用这种东西,因为当您动态创建表单时,无论如何您都无法使用对象检查器。

在您的情况下,从另一个类分配事件处理程序可能是不合适的,尽管它取决于类以及函数如何访问内部成员。如果您可以将处理程序重新设计为不是成员函数,我不明白为什么您不能将它用于两个类。我使用其他类的成员函数作为表单和按钮以及其他 GUI 对象的事件处理程序,尽管 VCL 对象通常是作为该类的成员变量动态创建的。

于 2012-07-25T09:38:58.927 回答