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

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

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

Ответы [ 2 ]

1 голос
/ 10 августа 2011

Будет отредактировано как DFM, так и файл заголовка для удаления компонентов.

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

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

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

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

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

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

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

0 голосов
/ 10 августа 2011

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

...