我有Sender: TObject
参数
procedure TForm1.FormCreate(Sender: TObject);
如何再次调用此程序?
此版本不起作用:
TForm1.FormCreate(Sender: TObject);
提前致谢。
答案 0 :(得分:5)
我假设您希望调用FormCreate
实例的过程TForm1
。
如果您在FormCreate(Self)
课程内,则可以FormCreate(nil)
或TObject
(或者您可以传递任何TForm1
实例作为参数)。否则,您必须写Form1.FormCreate(Self)
或Form1.FormCreate(nil)
或类似地,其中Form1
是TForm1
的相应实例。
无论如何,稍后调用FormCreate
程序并不是特别“优雅”。实际上,该名称清楚地表明在创建表单时会调用该过程。
如果在其他阶段需要FormCreate
方法的特定逻辑,而您根本不想复制代码,则应该以单独的方法(过程或函数)的形式实现该片段并在必要时在FormCreate
以及程序的其他部分中调用它。
但是,你可能最好从FormCreate
移动那部分业务逻辑。我们在FormCreate
中通常做的是创建/初始化对象,这些对象稍后在FormDestroy
中未初始化/销毁(如果需要)。所以,仔细考虑一下你在FormCreate
中做了什么,对于你在这种方法中实现的部分或全部动作,可能有一个更好的,逻辑上更合适的地方。