代码之家  ›  专栏  ›  技术社区  ›  Pauk

Delphi-为什么explicitwidth和explicitheight总是出现在.dfm文件中,这是什么?

  •  32
  • Pauk  · 技术社区  · 16 年前

    我们注意到,当检查更新时, .DFM 文件已添加 ExplicitWidth ExplicitHeight 属性-但我们不知道为什么。

    我的问题是:

    • 这些属性是用来做什么的?
    • 为什么Delphi会自动添加它们?

    下面是一个示例,显示添加的 显宽 属性:

    object Splitter2: TcxSplitter
        Left = 0
        Top = 292
        Width = 566
        Height = 8
        Cursor = crVSplit
        HotZoneClassName = 'TcxXPTaskBarStyle'
        AlignSplitter = salBottom
        Control = BottomPanel
        Color = clBtnFace
        ExplicitWidth = 8
    end
    
    3 回复  |  直到 7 年前
        1
  •  27
  •   James    16 年前

    从谷歌搜索…

    Original article can be found here.

    显式属性记住 控件前一个边界 对齐或定位属性为 已从默认值更改。

    唯一一次显式属性 不写是指何时对齐 属性设置回其默认值 alnone的值。

    这是当显式属性 控件实际用于 将其边界重置为原来的边界 以前。

        2
  •  33
  •   André    16 年前

    使用DDevextensions,可以禁用在DFM中存储这些属性:
    http://andy.jgknet.de/blog/?page_id=10

    添加显式*属性移除器以保持DFM文件与旧的Delphi版本兼容

        3
  •  0
  •   Dmytro    16 年前

    只有当已发布属性的值与默认值不同时,Delphi才会将其值添加到DFM文件中。

    例如:

    property ExplicitWidth: Integer read FExplicitWidth write FExplicitWidth default 1;

    如果explicitWidth值不是1,那么它将被写入dfm。 如果未定义“默认值”,则任何值都将写入DFM。

    tcxsplitter不是标准的delphi组件,您最好问问它的作者属性的用途。