加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

delphi – TControlState.csDesignerHide与TControlStyle.csNoDe

发布时间:2020-12-15 04:29:34 所属栏目:大数据 来源:网络整理
导读:VCL似乎提供了两种从表单设计器中隐藏控件的机制:TControlState.csDesignerHide和TControlStyle.csNoDesignVisible. 就IDE而言,它们之间有什么区别?你应该用什么时候? 解决方法 概要 使用TControlState.csDesignerHide来防止控件的绘制. 使用TControlStyl
VCL似乎提供了两种从表单设计器中隐藏控件的机制:TControlState.csDesignerHide和TControlStyle.csNoDesignVisible.

就IDE而言,它们之间有什么区别?你应该用什么时候?

解决方法

概要

使用TControlState.csDesignerHide来防止控件的绘制.

使用TControlStyle.csNoDesignVisible来模拟Visible属性的运行时行为.

好问题!他们之间只是有区别,所以我做了一些调查.

在“控制”单元中搜索使用情况,我们发现:

> TControlState.csDesignerHide用于:TControl.InvalidateControl,TWinControl.UpdateShowing,TWinControl.PaintHandler,TWinControl.PaintControls,
>除了这些方法,TControlStyle.csNoDesignVisible也用于:TControl.Show,TControl.Repaint,TControl.CMVisibleChanged,TWinControl.AlignControls,TWinControl.ControlAtPos,TWinControl.CMVisibleChanged,TWinControl.GetControlExtents,TWinControl.CalcConstraints,TWinControl.CanAutoSize .

因此,TControlState.csDesignerHide仅用于绘画操作,而TControlStyle.csNoDesignVisible也用于位置和对齐操作.

换句话说,使用:

> TControlState.csDesigner隐藏,如果你只想控制可见性,
> TControlStyle.csNoDesignVisible如果您还想控制存在.

此外,TControlStyle.csNoDesignVisible仅与Visible属性结合使用.当Visible设置为True时,它不起作用. (通常,Visible属性仅影响运行时行为).

为了说明差异,特此提出一个表格设计师的三个屏幕截图.表单从左到右放置:具有控件TControlStyle.csNoDesignVisible的属性“Panel”,具有控件TControlState.csDesignerHide属性和另一个Panel的“TStateControl”的“TStyleControl”,所有属性均设置为alLeft:

>全部使用默认设置> StateControl1.DesignerHide = True> StyleControl1.NoDesignVisible = True和StyleControl1.Visible = False

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读