|
Вопрос # 1 825/ вопрос открыт / |
|
Здравствуйте, уважаемые эксперты!У меня такой вопрос как правильно переименовать юнит в уже написанном многомодульном приложении.
 |
Вопрос задал: GAZ (статус: Посетитель)
Вопрос отправлен: 19 августа 2008, 07:18
Состояние вопроса: открыт, ответов: 2.
|
Ответ #1. Отвечает эксперт: Шичко Игорь
Здравствуйте, 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. Рекомендация. перед проведением эксперимента сохранить все файлы проекта в отдельном каталоге (сделать копию каталога программы).
 |
Ответ отправил: Шичко Игорь (статус: 9-ый класс)
Время отправки: 19 августа 2008, 07:55
Оценка за ответ: 4
|
Ответ #2. Отвечает эксперт: Feniks
Здравствуйте, GAZ!
В дополнении...
Сам модуль, который необходимо переименовать, лучше переименовывать средставми Делфи. Для этого используйте "Сохранить как..." или откройте окно Менеджера Проекта и там это сделайте. Тем более, если у вас не просто сам юнит, а еще и форма к нему. И лучше удалять старые .dcu файлы. Потом ручками Поиском и Заменой пройтись по всем модулям проекта и заменить старое название на новое.
Я когда-то в Д5 наступал на такие грабли.
P.S. Желаю удачи. Если помог, жмите +1 в репутацию. ;-)
 |
Ответ отправил: Feniks (статус: Бакалавр)
Время отправки: 19 августа 2008, 10:22
|
Мини-форум вопроса
Всего сообщений: 5; последнее сообщение — 20 августа 2008, 18:11; участников в обсуждении: 2.
|
Dron (статус: Студент), 19 августа 2008, 10:34 [#1]:
Цитата:
Переименовать файлы 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
Ну с этим Игорь, конечно, переборщил. Кроме *.pas, *.dfm больше вообще ничего хранить не нужно - это всё временные файлы. *.dcu можно оставить, конечно, но если его нет - не беда, перекомпилируется заново.
А вообще, вот то, чем я пользуюсь:
del /S *.~*
del /S *.dsk
del /S *.obj
del /S *.hpp
del /S *.ddp
del /S *.mps
del /S *.mpt
del /S *.bak
Создайте bat-файл с таким содержанием и назовите его, к примеру, clean.bat. Это быстрый способ удалить кучу ненужных файлов. В каталоге проекта станет заметно чище
С уважением.
|
|
GAZ (статус: Посетитель), 19 августа 2008, 17:57 [#2]:
Dron
del /S *.~*
del /S *.dsk
del /S *.obj
del /S *.hpp
del /S *.ddp
del /S *.mps
del /S *.mpt
del /S *.bak
Не могли бы вы пояснить более понятным языком
|
|
Dron (статус: Студент), 20 августа 2008, 08:33 [#3]:
Что именно пояснить? Вам интересно, как это работает?
Команда del удаляет файлы, параметр /S указывает на то, что сделать это нужно тихо, не выводя никаких сообщений или окон запроса. Ну а дальше просто перечислены маски тех файлов, которые не нужны.
С уважением.
|
|
GAZ (статус: Посетитель), 20 августа 2008, 18:07 [#4]:
Dron
Простите за дилетанство,просто никогда не имел дело с bat-файл,как его создавать из проекта или...?Как подключать,если нет? Что значит я пользуюсь,только когда надо переименовать или...?
|
Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.
|