7

我试图通过简单地调用从 TListBox 双击事件中引发 TButton Click 事件:

Button1.Click;

我总是能够在 Delphi XE 及其以下版本下做到这一点,但现在它在 Delphi Prism 中引发错误。错误消息是“无法访问基础事件字段”。那么,您将如何从另一个控件(例如 TListBox)的事件中引发事件?

例如:

method UnitSelectDialog.UnitListBox_DoubleClick(sender: System.Object; e: System.EventArgs);
begin
   Okbtn.Click;
end;

上面的代码与单击表单上的 OK T 按钮相同。

4

2 回答 2

5

我不熟悉 Prism,但这对我来说就像 WinForms 按钮。如果是这样,那么您可以调用PerformClick.

OKbtn.PerformClick;

.net 事件比 VCL 事件复杂得多。最重要的是它们是多播的,这意味着可以附加多个处理程序。这样做的一个结果是调用事件要复杂得多。

于 2011-08-09T15:58:14.787 回答
0

如果您要定义自己的类,则第二种选择是公开事件的公共“引发”处理程序,例如

event Click: ClickEventhandler; public raise;

这会导致编译器公开正确的方法,以便其他类可以调用“Click()”来调用事件。(当然,任何其他非私人可见性也可以)。

于 2011-08-16T18:35:33.480 回答