如何在没有用户干预的情况下调用delphi中的事件?

时间:2013-01-03 12:18:43

标签: delphi delphi-xe2

我的表单上有一个按钮。以下是该按钮的点击事件

procedure Form1.btnOKClick(Sender: TObject);
begin
//Do something
end;

只有当我点击按钮时才会调用此事件,对吗?

如何在没有任何用户干预的情况下自动调用此事件?

3 个答案:

答案 0 :(得分:16)

调用附加到控件的OnClick事件处理程序的最佳方法是在控件上调用Click方法。像这样:

btnOK.Click;

直接调用事件处理程序会强制您提供Sender参数。调用Click方法可以控制所有工作。单击按钮的Windows消息处理程序的实现调用Click方法。

但我是第二个在whosrdaddy回答中表达的意见。你应该把按钮背后的逻辑拉进一个单独的方法。

答案 1 :(得分:15)

不要将您的businesslogic放入事件处理程序。当应用程序变大时,这将使您的代码无法读取。

通常你会这样做:

procedure TForm1.DoSomething;
begin
 // do something
end;

procedure TForm1.btnOKClick(Sender: TObject);
begin
 DoSomething;
end;

然后您需要做的就是从代码中的其他部分调用DoSomething

答案 2 :(得分:5)

您可以像在任何其他方法中一样在代码中调用此事件。

...
btnOkClick(Self.btnOk); // Sender in this case is the btnOk
...

发件人可以是您喜欢的任何对象或无。