在Delphi中调用一个过程

时间:2012-03-24 10:06:50

标签: delphi object procedure

我有Sender: TObject参数

的程序
procedure TForm1.FormCreate(Sender: TObject);

如何再次调用此程序?

此版本不起作用:

TForm1.FormCreate(Sender: TObject);

提前致谢。

1 个答案:

答案 0 :(得分:5)

我假设您希望调用FormCreate实例的过程TForm1

如果您在FormCreate(Self)课程内,则可以FormCreate(nil)TObject(或者您可以传递任何TForm1实例作为参数)。否则,您必须写Form1.FormCreate(Self)Form1.FormCreate(nil)或类似地,其中Form1TForm1的相应实例

无论如何,稍后调用FormCreate程序并不是特别“优雅”。实际上,该名称清楚地表明在创建表单时会调用该过程。

如果在其他阶段需要FormCreate方法的特定逻辑,而您根本不想复制代码,则应该以单独的方法(过程或函数)的形式实现该片段并在必要时在FormCreate以及程序的其他部分中调用它。

但是,你可能最好从FormCreate移动那部分业务逻辑。我们在FormCreate中通常做的是创建/初始化对象,这些对象稍后在FormDestroy中未初始化/销毁(如果需要)。所以,仔细考虑一下你在FormCreate中做了什么,对于你在这种方法中实现的部分或全部动作,可能有一个更好的,逻辑上更合适的地方。