0

我有一个带有两个窗口的小应用程序。当我打开第二个表单时 - 第一个表单隐藏:

procedure TIndexForm.startButtonClick(Sender: TObject);
begin

  workingForm.Show(); // show second form
  IndexForm.Hide(); // hide first form

end;

但如果第二个窗口关闭 - 应用程序仍在运行(没错)。但是,我想在第二个窗口关闭时打开第一个窗口:

procedure TworkingForm.FormClose(Sender: TObject);
begin
  parent.Show();
end;

而且这段代码不起作用......我该怎么做?

提前致谢 :)

4

3 回答 3

1

我认为您使用了错误的事件。您似乎正在显示和隐藏表单。因此,您希望将事件附加到OnHide而不是OnClose.

调用也是错误ShowParent。Windows 控件的Parent特点是它包含控件。例如,当您将按钮放在面板中时,按钮的父级就是面板。在您的情况下,您想调用Show其他表格。

于 2013-07-03T09:31:00.877 回答
1

我看到两个问题。首先,这不是一个真正的OnClose事件处理程序。在 Visual Basic 中,只需在代码中键入它们的名称即可创建事件处理程序,但在 Delphi 中,它们的名称无关紧要。它们需要连接到表单或控件的事件属性,我可以说这个没有连接,因为OnClose事件需要两个参数,而不是一个。双击 Object Inspector 中的事件,让 IDE 为您生成具有正确参数的事件处理程序,并自动将其挂接到事件。

其次,您要显示的形式不是Parent。这很明显,因为如果父窗口被隐藏,那么它的所有子窗口也是如此。因此,您的两个表格没有父子关系。

如果你想显示另一种形式,只需使用与最初隐藏它相同的技术:

IndexForm.Show;
于 2013-07-03T13:17:21.450 回答
0

在本例中,Parent 未分配给第一个表单。您需要在实现使用子句中添加具有第一种形式的单元或调用类似 Application.MainForm.Show;

于 2013-08-01T09:10:48.630 回答