Многое изменилось между Delphi 5 и XE.
Одной из самых больших является Unicode Strings.
- Delphi Version 2 - 2007: String = AnsiString
- Delphi Version 2009 - XE: String = UnicodeString
Ваш код необходимо изменить для обработкиэтот.Здесь много других вопросов о переполнении стека, которые охватывают эту тему.
В дополнение к этому изменению обновление с версии на версию требует немного больше, чем просто открытие и компиляция.Дальнейшее разъяснение проблемы, с которой вы столкнулись, поможет уточнить ответы на ваш вопрос.
Вот шаги, которые я обычно выполняю при обновлении.
Удалите все DCU, DCP и BPLфайлы, которые находятся в ваших исходных каталогах.
Если вы настроили хорошо определенные выходные каталоги, как правило, все, что вам нужно сделать, это изменить выходной каталог.
Установить / обновить всеКомпоненты в новой версии Delphi
Заголовки некоторых компонентов (например, QuickReport и Decision Cube), которые были установлены по умолчанию ранее, не существуют в установке по умолчанию.Decision Cube все еще поставляется, но теперь находится в каталоге демонстраций.QuickReport больше не является частью продукта.
У вас также могут быть компоненты сторонних производителей, которые необходимо обновить.
Откройте Project, убедитесь, что каждая форма и модуль данных будут открываться без ошибок
Эти ошибки обычно указывают на то, что у вас не установлен компонент и / или интерфейс компонентаизменилось.В любом случае, если вы прочитаете и будете следовать сообщениям об ошибках, вы сможете их обработать.
Постройте свой проект
Исправьте все ошибки компиляции.Если вы использовали $IFDEF VERXXX
в своем коде, возможно, вам придется изменить эту логику, чтобы она была правильной в новой версии.
Устраните все предупреждения.Предупреждения компилятора обычно указывают на плохой код, который может сломаться.Каждая версия Delphi обычно вводит несколько новых предупреждений.Например, игнорирование строковых предупреждений, скорее всего, приведет к неправильному поведению вашего приложения.