Delphi - Откуда IDE выбирает список имен форм? - PullRequest
4 голосов
/ 28 сентября 2010

Особенно для заполнения диалоговых окон «наследуемые элементы» и «создание форм»

Я спрашиваю, потому что уже несколько дней я не могу больше создавать наследуемые элементы, так как есть пробел (или табуляция?)каждому имени формы, поэтому я получаю сообщение об ошибке, когда наследование типа «basewindow 2 не является допустимым идентификатором» (обратите внимание на пробел между basewindow и 2)

Это очень блокирует для меня, так как все формы впроект унаследован от общего предка ...

Примечание: на вновь созданных объектах нет места, и они работают нормально.Это план d2010, дополнительные инструменты и утилиты IDE не загружены;Примечание 2: это относится только к одному проекту

Есть идеи?

заранее спасибо Didier

1 Ответ

11 голосов
/ 28 сентября 2010

Я провел некоторое исследование этого вопроса в связи с вопросом: Зарегистрируйте пользовательскую форму, чтобы я мог наследовать ее от нескольких проектов, не копируя форму в папку репозитория объектов . Хотя этого нет в моем ответе, с тех пор я пришел к выводу, что среда IDE позволяет вам наследовать только элементы, явно добавленные в проект.

Поэтому я бы сказал, что он выбирает эти наследуемые элементы из файла dpr. Строка типа

  UnitOKFrame in 'UnitOKFrame.pas' {OKFrame: TFrame},

добавит OKFrame в список наследуемых элементов.

Так что мое "предположение" заключается в том, что каким-то образом вы получили дополнительные пробелы между именем ваших форм / фреймов и двоеточием, которое отделяет его от его типа. Что-то вроде:

  UnitOKFrame in 'UnitOKFrame.pas' {OKFrame : TFrame},

Если это действительно так, я бы отправил отчет о контроле качества в Embarcadero. Они могли бы сделать анализ dpr более надежным и дружественным для нас, бедных программистов: -) ...


Как отметил Уве в комментариях, формы включены без идентификатора типа:

  UnitLogonForm in 'UnitLogonForm.pas' {LogonForm},

в этом случае между фигурными скобками, окружающими фактическое имя, могут быть лишние пробелы:

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