4

我在表格上有一个框架。当我更改框架(添加/删除按钮、标签)时,表单上没有出现任何更改,或者控件在框架中的表单中具有其他位置。如果要从表单中删除框架并再次添加 -> 好的。

为什么?我记得 Delphi 2010(现在是 Delphi XE)没有问题。

谢谢。

4

1 回答 1

15

因此,您创建了一个框架,然后将它的一个实例拖放到另一个表单上,问题是后来对原始框架所做的更改不会立即显示,直到您删除该实例并重新放置它?

您不需要删除框架,只需右键单击并选择您希望其属性来自其主(原始框架)属性的控件,然后单击Revert to inherited。奇怪的是,全选在框架中不起作用。

这是我避免使用框架的原因之一。我希望框架具有“不允许自定义”属性 (AllowCustom=false),通过不允许框架具有这种奇怪的双属性集来防止任何设计时 DFM 冲突。

另一种标准化框架的方法是右键单击并以文本形式查看表单,然后将框架缩小为:

 inline Frame61: TMyFrame61
    Left = 0
    Top = 0
    Width = 500
    Height = 500
    Align = alNone
    TabOrder = 0
    ExplicitLeft = 31
    ExplicitTop = 33
  end

现在它根本不包含任何被覆盖的属性。

如果我将其中一个控件拖动到其他地方(甚至是意外),则会在丢弃 Frame 的 DFM 中发生以下情况:

 inline Frame61: TMyFrame6
    Left = 0
    Top = 0
    Width = 500
    Height = 500
    Align = alNone
    TabOrder = 0
    ExplicitWidth = 527
    ExplicitHeight = 337
    inherited Edit2: TEdit
      Left = 19
      Top = 77
      ExplicitLeft = 19
      ExplicitTop = 77
    end   
  end

DFM 中的这些额外内容会干扰您在其他级别所做的更改。通常添加额外的控件和删除控件是没有问题的(添加时应该显示额外的控件,自动和删除的控件应该消失),但是由于定位问题(控件重叠/等)的影响,效果可能是你没有'直到以后才能看到变化。

于 2011-08-04T19:14:17.120 回答