Windows 德尔菲。从子窗口显示父窗口
我有一个带有两个窗口的小应用程序。当我打开第二个窗体时-第一个窗体将隐藏:Windows 德尔菲。从子窗口显示父窗口,windows,forms,delphi,Windows,Forms,Delphi,我有一个带有两个窗口的小应用程序。当我打开第二个窗体时-第一个窗体将隐藏: procedure TIndexForm.startButtonClick(Sender: TObject); begin workingForm.Show(); // show second form IndexForm.Hide(); // hide first form end; 但若第二个窗口关闭,应用程序仍在运行(没错)。但是,我想在第二个窗口关闭时打开第一个窗口: procedure Twork
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;
这个代码不起作用。。。我怎么能做到
提前感谢:)我认为您使用了错误的事件。您似乎正在显示和隐藏窗体。因此,您希望将事件附加到
OnHide
而不是OnClose
在
Parent
上调用Show
也是一个错误。windows控件的父控件是它所包含的控件。例如,将按钮放置在面板中时,按钮的父级是面板。在您的情况下,您需要在另一个窗体上调用Show
。我看到两个问题。首先,这不是一个真正的OnClose
事件处理程序。在VisualBasic中,您可以通过在代码中键入事件处理程序的名称来创建它们,但在Delphi中,它们的名称是不相关的。它们需要连接到窗体或控件的event属性,我可以看出这一个没有连接,因为OnClose
事件需要两个参数,而不是一个。双击对象检查器中的事件,让IDE为您生成具有正确参数的事件处理程序,并自动将其挂接到事件
其次,要显示的表单不是Parent
。这是显而易见的,因为如果父窗口被隐藏,那么它的所有子窗口也是隐藏的。因此,您的两个表单没有父子关系
如果要显示另一个窗体,只需使用最初隐藏该窗体时使用的相同技术:
IndexForm.Show;
在此示例中,未将父项指定给第一个表单。 您需要在实现uses子句或 打电话给
Application.MainForm.Show 对于使用
IndexForm.Show
方法,我需要添加第一个表单单元(因为它不能从第二个单元中获得),但是这个-内存不足错误..这个问题与内存不足无关。这是一个完全不同的问题。一些建议。不要说“这个代码不起作用”。告诉我们你期望发生什么,以及实际发生了什么。如果有错误消息,请逐字记录。