如何从另一个表单关闭一个表单?

How can I close a form from another form?

假设我有两种形式 Form1Form2Form1 包含两个按钮,一个用于创建和显示 Form2,一个用于关闭 Form2

要创建 Form2 我使用:

Form2 := TForm2.Create(Self);
Form2.Show;

如何从 Form1 关闭 Form2

调用另一种形式的Close方法:

Form2.Close;

或者如果你想销毁对象:

Form2.Free;

或者如果您只是想隐藏它:

Form2.Hide;

如果显示表单的按钮也创建了它,那么您需要确保没有泄露表单的实例。想象一下多次单击该按钮,并创建多个表单实例。

所以也许您需要这样的代码来创建和显示表单:

if not Assigned(Form2) then
  Form2 := TForm2.Create(Self);
Form2.Show;

和这样的代码来关闭和销毁它:

Form2.Free;
Form2 := nil;