如何在运行时隐藏组件?
How to hide a component at runtime?
使用 IntraWeb 14.1 和 Delphi 柏林,
我正在像这样在 IWRegion
中创建和养育一个框架:
Page := TFrame.Create(Self);
Page.Parent := UserSession.Body_Region;
其中 UserSession.Body_Region;
在 UserSessionUnit
中被声明为 Body_Region: TIWRegion;
以在运行时将该区域从一个表单传递到另一个表单,并且一切正常。
问题是 我想在 UserSession.Main_Body_Region.Component[0];
运行时隐藏 UserSession.Body_Region
中加载的框架 但我做不到。
我和
一起尝过
(UserSession.Main_Body_Region.Component[0] as TFrame).hide;
或
(UserSession.Main_Body_Region.Component[0] as TFrame).Visible:= false;
但它不起作用!也没有错误!
还有其他方法吗?还是我错过了什么?
尽管 documentation 说
TIWRegion
control is the IntraWeb equivalent of the TPanel from VCL.
它有一个重要的区别需要考虑:
property RenderInvisibleControls: Boolean;
继承自 TIWBaseContainer
文档将其描述为
Use this property to inform that any control that has Visible = False
when the container it is rendered will also be rendered along with the
visible controls. This is particulary useful when you need to change
the visibility of controls using Async events.
IOW,将此 属性 设置为 False
将停止呈现具有 Visible = False
的子组件。
使用 IntraWeb 14.1 和 Delphi 柏林,
我正在像这样在 IWRegion
中创建和养育一个框架:
Page := TFrame.Create(Self);
Page.Parent := UserSession.Body_Region;
其中 UserSession.Body_Region;
在 UserSessionUnit
中被声明为 Body_Region: TIWRegion;
以在运行时将该区域从一个表单传递到另一个表单,并且一切正常。
问题是 我想在 UserSession.Main_Body_Region.Component[0];
运行时隐藏 UserSession.Body_Region
中加载的框架 但我做不到。
我和
一起尝过(UserSession.Main_Body_Region.Component[0] as TFrame).hide;
或
(UserSession.Main_Body_Region.Component[0] as TFrame).Visible:= false;
但它不起作用!也没有错误!
还有其他方法吗?还是我错过了什么?
尽管 documentation 说
TIWRegion
control is the IntraWeb equivalent of the TPanel from VCL.
它有一个重要的区别需要考虑:
property RenderInvisibleControls: Boolean;
继承自 TIWBaseContainer
文档将其描述为
Use this property to inform that any control that has Visible = False when the container it is rendered will also be rendered along with the visible controls. This is particulary useful when you need to change the visibility of controls using Async events.
IOW,将此 属性 设置为 False
将停止呈现具有 Visible = False
的子组件。