Delphi: Как избавиться от ошибки «Предок TMyForm not found»? - PullRequest
15 голосов
/ 23 декабря 2010

У меня есть некоторые формы, унаследованные от TMyForm (TMyForm является компонентом третьей стороны с формой исходного кода).

Когда я открываю в IDE мои формы, унаследованные от TMyForm, у меня есть:

Ошибка при создании формы: предок для 'TMyForm' не найден.

Обходной путь - открыть модуль TMyForm в IDE, а затем попытаться открыть мои унаследованные формы сверху.

Но как я могу избежать того, что Delphi выдает эту ошибку и может открывать мои формы, даже если TMyForm не открыт в IDE?

Ответы [ 4 ]

14 голосов
/ 23 декабря 2010

Вам нужно открыть родительскую форму в IDE или добавить в проект, к сожалению, обходного пути нет. Здесь: Зарегистрируйте пользовательскую форму, чтобы я мог наследовать ее от нескольких проектов, не копируя форму в папку «Репозиторий объектов» Я пытался делать много-много вещей, но безуспешно.

3 голосов
/ 14 марта 2013

Мой обходной путь.Есть несколько способов:

  • Добавить в проект полный путь ко всем родительским формам.Неудобно из-за абсолютного пути
  • Добавить пакет с родительскими формами в список проектов.В этом случае проблем нет.Но каждый раз необходимо открывать компоненты в среде delphi.
  • Использовать временное решение от embarcadero.

Там автоматически открываются все дочерние формы:

Билет, был создан около 10 лет назад: http://qc.embarcadero.com/wc/qcmain.aspx?d=8376

Здесь вы можете скачать версию для Delphi XE2: https://bitbucket.org/hemn/autoopenunit

Рекомендую!

2 голосов
/ 23 декабря 2010
1 голос
/ 27 марта 2019

Я искал решение для всего этого, и, кажется, я наконец нашел его.

Я использую пакет с несколькими базовыми формами и фреймами.

Я добавил их в хранилище, но ошибка все равно появилась.

Некоторые формы и фреймы не отображали 'dfm' в Менеджере проектов, и, кажется, ключом к этому является редактирование файла .dpr и добавление имени в фигурных скобках:

fIBSConnectionForm in 'GUI\BaseGUI\fIBSConnectionFrom.pas',

в

fIBSConnectionForm in 'GUI\BaseGUI\fIBSConnectionFrom.pas' {frmIBSConnectionForm},

и для фреймов обязательно используйте {f ...: TFrame}

После этого и перезапуска Delphi я снова смог открыть формы-потомки!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...