Остановить C++Builder XE от удаления / редактирования компонентов пользовательского интерфейса в файлах.dfm

Как я могу остановить C++Builder XE от автоматического редактирования файлов.dfm?

В настоящее время я портирую довольно большую кодовую базу с BCB5 на XE. Многие старые компоненты были использованы в старом коде, но еще не установлены для новой среды (так как мне нужно найти рабочие заменители или портировать их самостоятельно). Теперь Builder удаляет / изменяет определения этих компонентов пользовательского интерфейса в моих файлах dfm. Если в среде IDE не найдена реализация компонента, он полностью удаляется. Для известных компонентов размер изменяется на небольшое значение довольно много раз. Как я могу повернуть это раздражающее поведение?

2 ответа

Решение

Это отредактирует и DFM и файл заголовка, чтобы удалить компоненты.

Есть три варианта:

  • Когда IDE открывает форму, для которой нет компонентов, она спросит вас, что делать. Вы можете нажать "Игнорировать все", и он не удалит эти ссылки на компоненты.

  • Если вы используете систему контроля версий, вы сможете отменить эти изменения. То есть, пусть IDE делает все, что захочет, а затем отменяет или не фиксирует эти изменения.

  • Тем не менее, наилучшим подходом было бы установить эти компоненты. Если вы открываете формы в проекте, но компоненты не существуют, что вы пытаетесь сделать? Вы не сможете их скомпилировать. И если вам нужно заменить компоненты на другие, что не так с IDE, удаляющей старые?

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

"Для известных компонентов размер изменяется на небольшое значение довольно много раз".

Технически это другой вопрос;) Но если он маленький, игнорируйте его. Некоторые свойства, такие как ExplicitLeft а также ExplicitTop почти наверняка изменится, и я думаю, что это связано с разным заголовком окна и шириной кромки (обычно это видно, если вы используете, скажем, Vista, когда форма была сохранена с XP. Я думаю. Я так и не понял, почему они постоянно меняются, но, похоже, это ни на что не влияет.) Убедитесь, что вы используете систему с тем же параметром DPI, который использовался при последнем сохранении форм (это параметр размера шрифта в свойствах дисплея.)

Я обнаружил, что файлы dfm изменяются IDE, только если открыт соответствующий файл cpp или h. Таким образом, я могу скомпилировать исходный код, компилятор выдаст ошибку, как только будут найдены неизвестные компоненты / свойства, и я смогу их разрешить.

Другие вопросы по тегам