delphi 从自定义方法调用类方法

vhipe2zx  于 2023-02-15  发布在  其他
关注(0)|答案(1)|浏览(145)

我对 Delphi 比较陌生,所以请原谅我的无知。
作为练习,我正在编写一个MasterMind小游戏,其思想是,当用户得到正确的数字时,执行一个自定义方法(Congrats)。
这个方法中的一个选项是重新播放。接下来的一个明显步骤是必须将窗体重置为默认(“启动”)状态。我为此创建了一个类型方法(Resetform,在public中声明为方法,因为它需要访问控件)。我不能从Congrats调用它,但我注意到我可以从其他事件处理程序调用它。
有可能做到这一点吗?如果有可能,我该如何着手?
从事件处理程序起作用,但不能从自定义过程起作用。

yduiuuwa

yduiuuwa1#

方法Resetform是窗体的一个方法,这就是为什么你可以从窗体的事件处理程序调用它,它们驻留在同一个对象中。
要从窗体上下文之外调用Resetform,需要一个对窗体的引用,否则代码将不知道需要在窗体的哪个示例上调用Resetform
现在,假设您从表单调用Congrats,您可以添加一个参数并如下调用它:

Congrats(Self)

您的过程可以实现为

procedure Congrats(AForm : TMyForm); // "TMyForm" being the class of your form
begin
  ...
  AForm.Resetform;
end;

但是,您也可以将Congrats作为表单的方法。
如果Congrats不是从窗体调用的,那么您需要找到另一种方法将窗体的引用传递给函数,或者使用另一种方法。

相关问题