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