Модераторы: Poseidon, Snowy, bems, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Проблема с добавлением модуля в проект, The project already contains a form... 
:(
    Опции темы
Saddam
  Дата 12.11.2007, 17:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 5
Регистрация: 30.10.2007

Репутация: нет
Всего: нет



Добрый день, проблема вот в чем...

Есть довольно крупный проект, созданный в BDS 2006. В него включено большое число форм.
При импортировании одной из них возникла ошибка по причине того, что находившийся на форме компонент не был установлен в среде разработки. Его установка и не планировалась, поэтому его исходник был подправлен с целью избавиться от этого компонента. DFM-файл также пришлось немного подправить вручную.
Далее, файл был удален из проекта и импортирован заново, но возникла вот такая вот ошибка "The project already contains a form or module named [имя модуля]", причем сам PAS-файл в проект добавился и открылся. Более того при нажатии на F12 общий вид формы отображается, что означает что DFM тоже подключился к проекту. Проект билдится и работает, но в Project Manager нет "плюсика" с приложенным к модулю DFM-файлом. (см. приложенный рисуночек).

При повторном удалении модуля из проекта он якобы удаляется успешно и из списка и из файла проекта но при сборке я получаю вот такое вот сообщение (уже после компиляции на этапе Линковки) :
File not found '[имя модуля].DFM'

А зачем его искать, если я уже удалил его из проекта? Такое ощущение, что он осел где-то в ресурсах среды и вовсе не удаляется из проекта... как вылечить? Может у кого такое случалось?

P.S. Если добавлять данный модуль предварительно сменив ему имя - всё впорядке, есть и PAS и DFM, но переименовывать не хочется, так как другие файлы на него уже ссылаются.

P.P.S Знакомый говорил что у него на Delphi 5 такие же точно проблемы были, но он их так и не решил.

Присоединённый файл ( Кол-во скачиваний: 10 )
Присоединённый файл  _______________________.jpg 44,52 Kb
PM MAIL   Вверх
Snowy
Дата 12.11.2007, 17:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

Репутация: 192
Всего: 484



Отсутствие плюсика - ошибка анализа кода средой, которая вполне может быть вызвана некорректным исправлением.
Что касается сообщения о "не найден" - не имеет значения, подключен файл к проекту или нет.
Если другие модули на него ссылаются, он включается автоматически, о чём Delphi сообщает варнингом в логе сборки.
PM MAIL   Вверх
Saddam
Дата 13.11.2007, 10:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 5
Регистрация: 30.10.2007

Репутация: нет
Всего: нет



Цитата

Отсутствие плюсика - ошибка анализа кода средой, которая вполне может быть вызвана некорректным исправлением.


2Snowy: Исправлений в модуле и DFM было минимум - всего 1 строка, в корректности которых я убеждаюсь, если переименую модуль и подключу его к проекту. Всё работает. А если вернуть ему старое имя, он подключается "криво" (так, как я описал в 1 посте). Есть ли способ исправить эту ошибку? Или всё же прийдется включать его в проект с новым именем...
PM MAIL   Вверх
Snowy
Дата 13.11.2007, 12:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

Репутация: 192
Всего: 484



Убрать из проекта.
Стереть dcu файл.
Добавить в проект только pas.
Убедиться, что в pas есть строка {$R *.dfm}
Сбилдить проект. (build, не compile).
PM MAIL   Вверх
Saddam
Дата 13.11.2007, 15:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 5
Регистрация: 30.10.2007

Репутация: нет
Всего: нет



Попытался, вот что вышло:
1. Убрал модуль из проекта.
2. Удалил файл DCU.
3. Добавил в проект файл PAS
- При добавлении файла возникла ошибка, которую я уже получал ранее (см. приложенную картинку)
- Файл всё равно добавился в проект но без прикреплённой DFM под плюсиком (см. картинку в моем посте №1)

4. Строка {$R *.DFM} в модуле всегда присутствовала и продолжает присутствовать.
5. Проект билдится и работает, но от описываемой баги я так и не избавился, этот модуль без DFM-ки продолжает мозолить глаза :(


Кстати, Вы написали, что нужно добавить в проект только PAS, а BDS по идее сразу отыскивает рядом DFM-файл и добавляет его тоже. Поэтому я повторил опыт, переименовав на время DFM-файл, чтобы добавить один лишь PAS-файл.
Результат - при добавлении PAS-файла возникла ошибка:
Error creating form: Cannot open file "[путь к модулю]\[имя модуля].DFM" не удается найти указанный файл.

Вот такие дела... Есть еще идеи?


Присоединённый файл ( Кол-во скачиваний: 5 )
Присоединённый файл  Error.jpg 76,95 Kb
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0843 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.