Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Ошибка создания формы в design-time [D7, WinXP]


Юрий Зотов ©   (2010-04-27 10:48:00) 

Загружаю в IDE чужой проект. Билдится, запускается. Но при попытке поднять любую форму для визуального просмотра IDE выдает ошибку: "Error creating form: Ancestor for 'TForm' not found". В других проектах все нормально.

Такая ошибка возникает (и гугль это подтвердил), если в проекте есть визуальное наследование форм и при попытке открыть форму-потомка форма-предок не открыта. Но тут-то IDE говорит о классе TForm, у которого вовсе нет никаих ресурсов. Поэтому и непонятно, в чем дело.

Может, кто-то уже с таким безобразием сталкивался?


Anatoly Podgoretsky   (2010-04-28 11:23:00) [1]

> Юрий Зотов  (28.04.2010 09:57:08)  [8]

Мне тоже странно, ни разу не видал такого сообщения. А глюк возможно связан с путями, лечился повторным добавлением форм.


Юрий Зотов   (2010-04-28 09:57:00) [2]

В общем, так. Может, кому пригодится.

Визуального наследования и вложенных фреймов в проекте нет. Левых Forms.pas на диске тоже нет. Класс TForm нигде не переопределен. Это все сразу было проверено, иначе и писать сюда не стал бы.

Потом подумал, что надо проверить dfm. Сконвертил все dfm в текст (были бинарными) и проверил - везде object.

Вроде, все нормально. А глюк живет.

Удалил из проекта все формы и сохранил его. Потом перезагрузил IDE и те же формы добавил снова.

Глюк исчез. Значит, это действительно был глюк.

PS
Предок, Толя, предок. Что и странно.


Германн   (2010-04-28 02:52:00) [3]


> IDE ошибочно не пишет

Это точно.
Но IDE пишет "туда" всегда "тупо". И читает при компиляции тоже всегда по шаблону. Возможно это и правильно. Возможно нет.
Не всегда "шаблонная" реализация хороша.


Игорь Шевченко   (2010-04-27 20:17:00) [4]


> IDE иногда ошибочно пишет туда inherited, и начинается зоопарк


IDE ошибочно не пишет и чудес на свете не бывает


Anatoly Podgoretsky   (2010-04-27 19:02:00) [5]

> Юрий Зотов  (27.04.2010 10:48:00)  [0]

Вообще то он не совсем о TForm говорит, а о том, что не найден наследник от него.


_Гость_   (2010-04-27 13:47:00) [6]

надо проверить, что написано в dfm первым
object или inherited
должно быть  object
IDE иногда ошибочно пишет туда inherited, и начинается зоопарк


sniknik   (2010-04-27 11:46:00) [7]

> Но тут-то IDE говорит о классе TForm
TForm = class(Forms.TForm);


sniknik   (2010-04-27 11:44:00) [8]

приблизительно было.
в dfm сбилось (каким образом хз.)  указание что форма наследуемая. стала как обычная. компилятор не пострадал, все inherited действовали как положено, компилировалось/работало правильно, но ide при открытии этой формы временами валился в ексепт (а также если форма просто присутствовала среди открытых, переходить и смотреть на нее для ошибки было необязательно, но так реже).


jack128_   (2010-04-27 10:58:00) [9]

а если создать новую форму в этом проблемном проэкте - все нормально??  

если в проэкте какая нить форма без визуального наследования и вложенных фреймов? Проверь её и выложи dfm'ку, а то так с ходу и не скажешь. ну и вообще проверь, нету где нить левой копии Forms.pas на винте


Наверх

Титульная страница Поиск, карта сайта Написать письмо