ошибка "File not found" после переименования модуля проекта
После переименования одного из модулей проекта начала появляться ошибка "файл не найден" со старым имененм dcu файла модуля.
Используется BDS 2006.
Кто сталкивался с подобной сложностью, подскажите решение.
Заранее спасибо !
старое имя модуля = UnitSpaseCraf
новое имя модуля = UnitTableSpaseCraf
Код:
[Pascal Fatal Error] ProjectModelingStandAdmin.dpr(12): F1026 File not found: 'UnitSpaseCraf.dcu'
Код:
program ProjectModelingStandAdmin;
uses
Forms,
UnitConstants in '..\UnitConstants.pas',
UnitMainForm in 'UnitMainForm.pas' {FormMain},
UnitStart in 'UnitStart.pas' {FormStart},
UnitDataModuleMain in 'UnitDataModuleMain.pas' {DataModuleMain: TDataModule},
UnitTableSpaseCraf in 'Окна управления данными\UnitTableSpaseCraf.pas' {FormTableSPACECRAFT},
UnitFormImagefullSize in 'UnitFormImagefullSize.pas' {FormImagefullSize},
UnitTableSystem in 'Окна управления данными\UnitTableSystem.pas' {FormTableSystem},
UnitFormCustomDataForm in 'UnitFormCustomDataForm.pas' {FormCustomDataForm}{!!! Место появления ошибки !!!};
{$R *.res}
begin
loadSetting;
Application.Initialize;
Application.Title := 'Управление данными моделирующего стенда';
Application.CreateForm(TFormMain, FormMain);
Application.CreateForm(TFormStart, FormStart);
Application.CreateForm(TDataModuleMain, DataModuleMain);
Application.CreateForm(TFormTableSystem, FormTableSystem);
Application.CreateForm(TFormCustomDataForm, FormCustomDataForm);
Application.Run;
end.
uses
Forms,
UnitConstants in '..\UnitConstants.pas',
UnitMainForm in 'UnitMainForm.pas' {FormMain},
UnitStart in 'UnitStart.pas' {FormStart},
UnitDataModuleMain in 'UnitDataModuleMain.pas' {DataModuleMain: TDataModule},
UnitTableSpaseCraf in 'Окна управления данными\UnitTableSpaseCraf.pas' {FormTableSPACECRAFT},
UnitFormImagefullSize in 'UnitFormImagefullSize.pas' {FormImagefullSize},
UnitTableSystem in 'Окна управления данными\UnitTableSystem.pas' {FormTableSystem},
UnitFormCustomDataForm in 'UnitFormCustomDataForm.pas' {FormCustomDataForm}{!!! Место появления ошибки !!!};
{$R *.res}
begin
loadSetting;
Application.Initialize;
Application.Title := 'Управление данными моделирующего стенда';
Application.CreateForm(TFormMain, FormMain);
Application.CreateForm(TFormStart, FormStart);
Application.CreateForm(TDataModuleMain, DataModuleMain);
Application.CreateForm(TFormTableSystem, FormTableSystem);
Application.CreateForm(TFormCustomDataForm, FormCustomDataForm);
Application.Run;
end.
Код:
Здравствуйте, уважаемые эксперты!У меня такой вопрос как правильно переименовать юнит в уже написанном многомодульном приложении.
Код:
Здравствуйте, GAZ!
Если делать это вручную, то операция занимает несколько шагов.
Для примера: переименовать unit1 в unit15
1. Открыть проект, в нем модуль unit1. Первую строку
unit Unit1;
поменять на
unit Unit15;
2. Переименовать файлы unit1.pas, unit1.dfm, Unit1.ddp, Unit1.dcu, Unit1.~pas, Unit1.~dfm, Unit1.~ddp в соответственно unit15.pas, unit15.dfm, Unit15.ddp, Unit15.dcu, Unit15.~pas, Unit15.~dfm, Unit15.~ddp
3. Открыть модуль проекта, и строку
Unit1 in 'Unit1.pas' {Project1},
поменять на
Unit15 in 'Unit15.pas' {Form1},
4. Открыть по очереди все остальные модули и если где то используется Unit1 (т.е. присутствует строка Uses unit1;) поменять эту строку на Uses unit15;
Откомпилировать.
Если выскакивает ошибка File not found unit1.dcu значит в каком-то модуле ещё присутствует ссылка на использование Unit1 (uses unit1).
P.S. Рекомендация. перед проведением эксперимента сохранить все файлы проекта в отдельном каталоге (сделать копию каталога программы).
Если делать это вручную, то операция занимает несколько шагов.
Для примера: переименовать unit1 в unit15
1. Открыть проект, в нем модуль unit1. Первую строку
unit Unit1;
поменять на
unit Unit15;
2. Переименовать файлы unit1.pas, unit1.dfm, Unit1.ddp, Unit1.dcu, Unit1.~pas, Unit1.~dfm, Unit1.~ddp в соответственно unit15.pas, unit15.dfm, Unit15.ddp, Unit15.dcu, Unit15.~pas, Unit15.~dfm, Unit15.~ddp
3. Открыть модуль проекта, и строку
Unit1 in 'Unit1.pas' {Project1},
поменять на
Unit15 in 'Unit15.pas' {Form1},
4. Открыть по очереди все остальные модули и если где то используется Unit1 (т.е. присутствует строка Uses unit1;) поменять эту строку на Uses unit15;
Откомпилировать.
Если выскакивает ошибка File not found unit1.dcu значит в каком-то модуле ещё присутствует ссылка на использование Unit1 (uses unit1).
P.S. Рекомендация. перед проведением эксперимента сохранить все файлы проекта в отдельном каталоге (сделать копию каталога программы).
Код:
Здравствуйте, GAZ!
В дополнении...
Сам модуль, который необходимо переименовать, лучше переименовывать средставми Делфи. Для этого используйте "Сохранить как..." или откройте окно Менеджера Проекта и там это сделайте. Тем более, если у вас не просто сам юнит, а еще и форма к нему. И лучше удалять старые .dcu файлы. Потом ручками Поиском и Заменой пройтись по всем модулям проекта и заменить старое название на новое.
Я когда-то в Д5 наступал на такие грабли.
В дополнении...
Сам модуль, который необходимо переименовать, лучше переименовывать средставми Делфи. Для этого используйте "Сохранить как..." или откройте окно Менеджера Проекта и там это сделайте. Тем более, если у вас не просто сам юнит, а еще и форма к нему. И лучше удалять старые .dcu файлы. Потом ручками Поиском и Заменой пройтись по всем модулям проекта и заменить старое название на новое.
Я когда-то в Д5 наступал на такие грабли.
Источник : http://expert.delphi.int.ru/question/1825/
и там ещё продолжение имеется.
Надеюсь, модуль добавлен в проект корректно, а старый удалён.
Цитата: CassandraDied
Открыть ProjectModelingStandAdmin.dpr и в 12й строчке поменять имя модуля на новое.
Надеюсь, модуль добавлен в проект корректно, а старый удалён.
Надеюсь, модуль добавлен в проект корректно, а старый удалён.
он именно переименовывался.. через интерфейс BDS.
и сейчас он с новым именем и на диске и в файлах проэкта.
">http://i.codenet.ru/caq/files/4/8/3/384.jpg[/IMG]