我的应用程序有几种不同的形式。从主窗体我可以打开许多其他窗体,我使用以下命令显示所选窗口:
frmConversions.ShowModal;
一旦用户完成了他们需要在该窗口中执行的操作并关闭该窗口,我将使用以下命令关闭窗口:
frmConversions.Close;
但是,如果用户返回到frmConversions,则仍会选择/输入之前选择的设置。我是否正确处理了多个窗口,如果是这样,我如何停止保留数据?
答案 0 :(得分:9)
这取决于您创建表单的方式。如果您自动创建表单,那么它将在程序的生命周期中存在,因此将保留存储在表单变量中的任何值。但是,如果您在需要时创建模态表单并在之后释放它们(就像自定义一样),那么将不存储值。这样就完成了
with TFrmConversions.Create(nil) do
try
ShowModal;
finally
Free;
end;
答案 1 :(得分:1)
在FormClose事件中,您可以选择在调用Close时窗体会发生什么(请参阅文档和here。如果Action是例如caHide,则表单被隐藏,而不是被释放。从而它将保留设置。
答案 2 :(得分:0)
有两种基本方法: 1)每次在显示之前创建表单,并在表单关闭时释放它。 2)在表单的OnShow事件中,将用户可能更改的所有变量设置为其初始值。
完成#1的方法是在表单的单元文件中放置一个函数来创建它,showmodal,然后释放它。