1

自从我升级到 Delphi 2009 以来,我对 TFrame 后代的体验很糟糕。基本上,框架的子组件作为对象溢出到主机表单中,导致名称崩溃、找不到类等。在 dfm 中,使用的旧 Delphi 具有框架 asinline和子组件 as inherited。Delphi 2009 IDE 现在将子项扩展为object.

编辑:我已经看到它发生在多种形式上,但我无法用小型演示应用程序重现它。

4

2 回答 2

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
于 2009-06-23T17:35:39.557 回答
0

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

于 2009-06-23T19:07:08.220 回答