Переместите проект от Delphi 3 до Delphi 2010

Установка свойства svn:mime-типа только к "тексту/плоскости" помогает:

svn propset svn:mime-type text/plain build.xml
svn commit build.xml

кроме того, можно вынудить Подрывную деятельность рассматривать файл как текст при обвинении:

svn blame file/to/blame --force
5
задан menjaraz 3 January 2012 в 09:00
поделиться

6 ответов

It should be very possible to do this migration, and depending on how your code is written, it may either be painful or painless. Unfortunately its not easy to say which until you start the migration process.

The first thing i would do would be to make sure that ALL DFM files are converted to their text representation. This I believe was set to default in later versions of Delphi but as I recall Delphi 3 used a binary format. There should be a utility file named DFMConvert or something in the delphi 3 bin directory which allows you to convert a DFM to text. The reason you will want to do this is to insure that you can read the source if you have to perform a hand edit of the DFM due to a component not loading. Not only are you jumping versions of Delphi, but you also are jumping versions of EVERY component you use and there may be a few incompatibilities that may cause a component to fail loading. I have found if this is the case and you have a "new" version, then use the edit the DFM source directly and compare a test form with the component on it against what your old version contains. Remove anything (or rename) that is out of place and then attempt to load the form again.

As Frabricio mentioned, if you use variants then you will need to make minor adjustments to your uses clause.

The good news is that your code itself should work fine once you get the components/uses clause corrected. If you go directly to Delphi 2010, your only other issue would be Unicode and the compiler does a fantastic job of pointing all of them out to you via errors and warnings.

6
ответ дан 18 December 2019 в 08:29
поделиться

Поскольку у вас есть D2007 и предполагая, что все эти наборы компонентов также поставляются с dcus D2007, я Советую сначала попробовать заново открыть кодовую базу на D2007. А после этого перейдите на D2010 из-за функции Unicode в фактическом VCL, которая может создать некоторые проблемы миграции (которые я не буду здесь обсуждать, потому что это подробно обсуждается в Интернете и здесь, на SO ).

Я бы сказал так, потому что где-то между D5 и D7 (не записывайте точно) произошла реорганизация модуля rtl (с созданием модуля Variants.pas, многие модули OTAPI изменили имена и т. Д.). Вот здесь и возникнут ваши первые проблемы. РЕДАКТИРОВАТЬ: были перемещены не только варианты, но и многое другое для интеграции IDE - чтобы избежать развертывания нелицензионного кода. Если у вас есть код OTAPI (например, код, разрешающий опубликованные свойства в унаследованных формах), его необходимо переместить в проект пакета.

Как сказал skramradt , вам, возможно, придется иметь дело с двоичным DFM ....

После этого, если все работает, переходите к Unicode. В зависимости от приложения это может быть просто или нет. Для моих не слишком досадно. Но я знаю, что есть другие, которые сталкиваются с этим с большими проблемами, чем я.

5
ответ дан 18 December 2019 в 08:29
поделиться

Just to reassure you, I recently converted the software I am developing from Delphi 4 to Delphi 2009 to gain Unicode capabilities, and I had a number of issues, but they were all solvable within a couple of weeks.

One thing to note: If you use any 3rd party packages, make sure they have a Delphi 2010 version available that you can upgrade to before you convert. Delphi 2009 would be okay, but I would not try to use older packages in D2010.

3
ответ дан 18 December 2019 в 08:29
поделиться

Я подтверждаю то, что говорят другие: преобразовать приложение D3 в D2010 обычно легко, если речь идет о вашем собственном коде.

Я вижу две трудности:

  1. Вы использовали String в качестве общего буфера, храня что-то еще, кроме символов.
  2. Ваш код предполагает, что sizeof (char) равен 1, то есть используйте Length (), когда SizeOf () должен быть используется или наоборот.

Самая сложная часть - это компоненты сторонних производителей.

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

0
ответ дан 18 December 2019 в 08:29
поделиться

У меня есть группа проектов Delphi 7, которую Delphi 2010 легко обновила. К сожалению, при следующем запуске с вновь созданными файлами группы проектов Delphi 2010 среда IDE просто аварийно завершает работу и исчезает после загрузки проэкт. Никаких исключений не отображается, нет сообщений об ошибках . Мое обходное решение - все время использовать файл Delphi 7 и позволить Delphi 2010 обновлять все, что угодно, без использования вновь созданных файлов проекта.

0
ответ дан 18 December 2019 в 08:29
поделиться

Я не могу много сказать о миграции с D3 на D2010, но недавно я успешно перешел с D6 на D2010. Для начала я убедился, что все сторонние компоненты, которые вы использовали в D3, также доступны в D2010. Перекомпилируйте любые пользовательские компоненты с D6 до D2010. Загрузил исходный код D6 и скомпилировал. Решайте все проблемы с Unicode. Обработайте все ошибки компилятора одну за другой ... все это займет примерно 3 дня (примерно 30000 строк кода)

1
ответ дан 18 December 2019 в 08:29
поделиться
Другие вопросы по тегам:

Похожие вопросы: