【发布时间】:2016-08-23 13:27:23
【问题描述】:
我的一些表单既可以显示为普通表单,也可以显示为模态表单。 如果它们显示为模态形式,我必须隐藏一些在模态状态下无用的组件。
if(fsModal in Self.FormState) then
begin
//hiding some components...
end;
我想在表格绘制之前执行我的代码,以避免不必要地绘制更多次。
【问题讨论】:
-
问题中的代码有什么问题?你不是已经找到答案了吗?就个人而言,虽然这感觉不对。我会在表单中添加一个定制的方法来显示它。作为参数传递给该方法是否显示模态或非模态。在调用
Show或ShowModal之前,在该方法中采取适当的操作。 -
这是在哪里执行的?在 OnShow 活动中?因为那是你需要它的地方,我想。
-
您是显示表单的人。因此,在您显示表单之前,请执行您需要做的任何事情。然后做
ShowModal. -
将代码放在
OnShow处理程序中的缺点是什么?无论如何,我会按照我上面描述的方式来做。您不需要将所有内容都放入事件中。您可以向您的类添加方法。而表单只是一个类。 -
@DavidHeffernan:过去我遇到过由 OnShow 中的代码引起的图形问题。最重要的是..如果我可以画一次,为什么还要画两次?从我的角度来看,这是一件不可接受的事情。