Delphi 2009:如何防止框架儿童溢出宿主形式?

时间:2009-06-23 13:47:51

标签: delphi delphi-2009 frame

自从我升级到Delphi 2009后,我对TFrame后代的体验非常糟糕。基本上,框架的子组件作为对象溢出到主机窗体中,导致名称崩溃,找不到类等。在dfm中,使用的旧版Delphi的框架为inline,子组件为inherited。 Delphi 2009 IDE现在将子项扩展为object

编辑:我看到它发生在多个表单中,但我无法通过小规模演示应用程序重现它。

2 个答案:

答案 0 :(得分:1)

我不知道你的项目发生了什么,但我刚创建了一个全新的D2009应用程序:   - 主要表格,
  - 持有Edit1和Label1的祖先帧,
  - 从祖先下降的子框架,我在其中添加了Label2和Edit2
  - 放置在主窗体上的ChildFrame实例,我稍微移动了Label2。

这是非常正常的结果dfm

object MyForm: TMyForm
  Left = 0
  Top = 0
  Caption = 'MyForm'
  ClientHeight = 286
  ClientWidth = 412
  Color = clBtnFace
  Font.Charset = DEFAULT_CHARSET
  Font.Color = clWindowText
  Font.Height = -11
  Font.Name = 'Tahoma'
  Font.Style = []
  OldCreateOrder = False
  PixelsPerInch = 96
  TextHeight = 13
  inline ChildFrame1: TChildFrame
    Left = 8
    Top = 8
    Width = 313
    Height = 240
    TabOrder = 0
    ExplicitLeft = 8
    ExplicitTop = 8
    ExplicitWidth = 313
    inherited Label2: TLabel
      Left = 162
      ExplicitLeft = 162
    end
  end
end

答案 1 :(得分:0)

父表单是否已正确添加到.dpr?