Delphi 2009: Как предотвратить распространение дочерних элементов в форму хоста? - PullRequest
1 голос
/ 23 июня 2009

С тех пор, как я обновился до Delphi 2009, у меня ужасный опыт работы с потомками TFrame. По сути, дочерние компоненты фрейма перетекают в форму хоста как объект, что приводит к сбою имени, классу не найден и т. Д. В dfm старшие используемые Delphi имеют кадр как inline, а дочерние компоненты как inherited. Delphi 2009 IDE теперь расширяет число детей до object.

Редактировать : я видел, как это происходит с несколькими формами, но я не могу воспроизвести его с помощью небольшого демонстрационного приложения.

Ответы [ 2 ]

1 голос
/ 23 июня 2009

Я не знаю, что случилось с вашим проектом, но я только что создал совершенно новое приложение 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
0 голосов
/ 23 июня 2009

Правильно ли добавлены родительские формы в .dpr?

...