如何在运行时隐藏组件?

时间:2017-09-29 14:52:57

标签: delphi intraweb

使用IntraWeb 14.1和Delphi Berlin, 我正在IWRegion内创建一个框架并为其添加一个框架,如下所示:

 Page := TFrame.Create(Self);
 Page.Parent := UserSession.Body_Region;

其中UserSession.Body_Region;Body_Region: TIWRegion;中被解除为UserSessionUnit,以便在运行时将该区域从表单传递到表单,并且一切正常。

问题是我想隐藏UserSession.Body_Region在运行时UserSession.Main_Body_Region.Component[0];内加载的框架,但是我无法做到。

我用

品尝了它
(UserSession.Main_Body_Region.Component[0] as TFrame).hide;

(UserSession.Main_Body_Region.Component[0] as TFrame).Visible:= false;

但它没有用!也没有错误!

有没有其他方法可以这样做,还是我错过了什么?

1 个答案:

答案 0 :(得分:6)

虽然documentation表示

  

TIWRegion控件是来自VCL的TPanel的IntraWeb等价物。

它有一个重要的区别:

property RenderInvisibleControls: Boolean;继承自TIWBaseContainer

文档将其描述为

  

使用此属性通知任何具有Visible = False的控件   当它渲染的容器也将随之渲染   可见的控件。当您需要更改时,这非常有用   使用Async事件控制的可见性。

IOW,将此属性设置为False将停止呈现Visible = False的子组件。