Lazarus 窗口切换

两个unit:unit1,unit2,unit1主窗口

在两个unit的implementation处添加对方
如unit1的implementation添加:
uses Unit2;
unit2类同

1. 在事件中直接添加窗口显示关闭,如unit2的事件:
Form2.Close;
Form1.Show;
事件会把form2关闭,form1显示

注意,form1的事件中不可以把form1.close;掉,因为主窗口一关闭,程序就退出了,可以使用隐藏
form1.hide;

//还有其它方式显示关闭,还末明白怎么处理,也暂不明白它们的区别
Form.ShowModal;
Form.Free;

第一次测试
ShowModal会显示出窗口来,但不会执行事件的下一句,如
Form2.ShowModal;
Form1.Hide;
结果:会显示窗口2,但窗口1继续显示,如果窗口2关掉,窗口1会隐藏,程序还在运行中。

第二次测试
查帮助文件,是这样写的:将窗体显示为模态状态,并等待它被用户或程序关闭。模态状态意味着在退出方法之前,用户和程序都不能切换到或显示另一个窗体。
使用体验,使用ShowModal,会显示出窗口,且无法操作其它窗口,这个在最前面,焦点不丢失,关闭后回上个窗口,继续执行代码。

2.也可以修改窗口的Visible属性为true或false来控制窗口的显示和隐藏

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注