Delphi .PAS-код возвращается к предыдущему коду после компиляции / сборки
У меня есть проект.BPG, в котором есть коллекция файлов проекта.DPR.
- Открыл файл.PAS
- Я изменил некоторую строку кода в файле.PAS проекта.
- Сохранил это
- После изменения исходного кода я попробовал COMPILE в этом проекте.
- Сначала он говорит "Скомпилировано" успешно.
Теперь я вижу тот же файл.PAS, изменения были потеряны. Коды, измененные на шаге 2, были потеряны. Имеет только предыдущий код.
Поведение тоже самое для BUILD. Кто-нибудь знает об этой проблеме?
Заранее спасибо.
Обновить
Еще один намек:
Имя проекта.DPR - XX.dll. В IDE в этом проекте есть один файл с именем XX_TLB.PAS. Только в этом файле я пытался изменить некоторый код, который был возвращен после компиляции / сборки. Теперь я попытался переименовать этот файл, который дал мне сообщение об ошибке
Библиотеки типов должны иметь расширение tlb.
Также могут ли файлы.DCU и.PAS находиться в одном каталоге? Я ввел этот каталог (где существуют файлы.PAS и.DCU) в список каталогов в разделе "Инструменты-> Параметры-> Параметры Delphi-> Библиотека - Win32".
2 ответа
XX_TLB.PAS
файлы являются защищенными файлами. Не редактируйте такие файлы напрямую. На самом деле в верхней части файла есть примечание, предупреждающее вас о редактировании файла.
Они обновляются каждый раз при обновлении библиотеки типов.
Увидеть Code Generated When You Import Type Library Information
,
Это обновление может быть сделано IDE каждый раз, когда вы компилируете / собираете свою dll.
Вы никогда не будете редактировать этот файл из-за зависимостей библиотеки типов и зарегистрированных com-объектов. Либо вы сами изменяете объект com с помощью редактора библиотеки типов, либо создаете новый модуль, взаимодействующий с вашим классом ActiveX.
Как правило, Delphi IDE не отменяет изменения. Есть заметное исключение. Когда вы создаете пустой обработчик событий, а затем сохраняете исходный файл, IDE удалит этот обработчик событий. Возможно, так и происходит.
Другая возможность, которая приходит мне в голову, заключается в том, что у вас есть несколько копий файла. Я знал, что произойдет следующее:
- Вы создаете пакет, содержащий Unit1.
- Вы устанавливаете пакет.
- Затем вы делаете другой проект, который содержит другой Unit1. Возможно, копия файла находится в другом месте, чтобы он выглядел как одно и то же устройство.
- Затем вы изменяете копию модуля Unit1, но среда IDE иногда предпочитает открывать файл из пакета.
Суть в том, что помимо удаления пустых обработчиков событий IDE не отменит ваши изменения. Таким образом, представляется весьма вероятным, что у вас есть несколько копий файла. Чтобы разобраться в этом, вам нужно получить полный путь к файлу. В среде IDE наведите курсор на вкладку с именем файла, и в среде IDE отобразится полный путь в подсказке. Я подозреваю, что вы обнаружите, что у вас есть два разных файла.