如何在运行时隐藏组件?

Dre*_*r64 6 delphi intraweb

使用IntraWeb 14.1和Delphi Berlin,我正在创建一个IWRegion像这样的框架:

 Page := TFrame.Create(Self);
 Page.Parent := UserSession.Body_Region;
Run Code Online (Sandbox Code Playgroud)

其中,UserSession.Body_Region;作为decleared Body_Region: TIWRegion;UserSessionUnit通过该区域从形式到形成在运行时,一切工作正常.

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

我尝过了

(UserSession.Main_Body_Region.Component[0] as TFrame).hide;
Run Code Online (Sandbox Code Playgroud)

要么

(UserSession.Main_Body_Region.Component[0] as TFrame).Visible:= false;
Run Code Online (Sandbox Code Playgroud)

但它不起作用!也没有错误!

有没有其他方法这样做或我错过了什么?

Tom*_*erg 6

虽然文档说的是

TIWRegion control是来自VCL的TPanel的IntraWeb等价物.

它有一个重要的区别,需要考虑:

property RenderInvisibleControls: Boolean; 继承自 TIWBaseContainer

文档将其描述为

使用此属性通知任何具有Visible = False的控件在呈现容器时也将与可见控件一起呈现.当您需要使用Async事件更改控件的可见性时,这非常有用.

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