Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > миграция проекта на Delphi 2009


Автор: RomanEEP 20.11.2008, 16:42
Поскольку c момента выпуска Delphi 2009 прошло уже немало времени и CodeGear успел выпустить первый SP решил перейти на неё. Сейчас я, как и большинство дельфистов, сижу на 7-ой версии, поэтому интересно услышать о проблемах при перегонки проекта под новую версию, стабильности её работы итп. Я на оф сайте ничего кроме замены c Ansi на Unicode ничего толком не написано. 

И еще вопрос обратной совместимости - смогу ли я проект девятки потом собрать в D7 ? (разумеется без использования новых фич компилятора)

Кроме того у себя в проекте я использую TBX. Их оф сайт уже давно не работает. Какие есть альтернативы? 

Автор: Bose 20.11.2008, 17:21
Цитата(RomanEEP @  20.11.2008,  16:42 Найти цитируемый пост)
Я на оф сайте ничего кроме замены c Ansi на Unicode ничего толком не написано. 

PChar тоже стал юникодным, так что в некоторых местах его придётся заменить на PAnsiChar.


Возможные проблемы:
VirtualTreeView для D2009 изменил декларацию событий OnGetText, OnGetHint. Если используется этот компонент, то возникнут проблемы с обратной совместимостью. Придётся либо конвертировать в D2009, либо использовать условные директивы(IFDEF) и присваивать события в коде. 

RomanEEP, а эти статьи читал?
http://dn.codegear.com/article/38446
http://dn.codegear.com/article/38582
http://dn.codegear.com/article/38703

Цитата(RomanEEP @  20.11.2008,  16:42 Найти цитируемый пост)
И еще вопрос обратной совместимости - смогу ли я проект девятки потом собрать в D7 ? (разумеется без использования новых фич компилятора)

После 7-й версии добавилось довольно много свойств. Если не лень будет их вычищать из dfm, то теоретически сможешь. При условии что исходные файлы так и останутся в Ansi.


Цитата(RomanEEP @  20.11.2008,  16:42 Найти цитируемый пост)
Кроме того у себя в проекте я использую TBX. Их оф сайт уже давно не работает. Какие есть альтернативы?  

Есть. http://club.telepolis.com/silverpointdev/sptbxlib/

Добавлено через 1 минуту и 47 секунд
Цитата(RomanEEP @  20.11.2008,  16:42 Найти цитируемый пост)
стабильности её работы

Хотя в SP исправили далеко не все ошибки, но стабильность работы нормальная. 

Автор: Akella 21.11.2008, 23:52
Цитата(Bose @  20.11.2008,  17:21 Найти цитируемый пост)
PChar тоже стал юникодным, так что в некоторых местах его придётся заменить на PAnsiChar.

зачем?

Добавлено через 23 секунды
Bose, это не возражение, как многие могут подумать, просто интересно smile 

Автор: aktuba 22.11.2008, 11:24
Цитата(Akella @  22.11.2008,  00:52 Найти цитируемый пост)
зачем?

Потому что иначе возможны проблемы с обработкой... Помимо этого, часто применяется такая конструкция:
Код

var
  AStr: string;
...
Stream.Write(AStr[1], Length(AStr));


В D2009 так уже нельзя, т.к. string ужу Unicode-строка. Теперь надо писать примерно так:
Код

var
  AStr: string;
...
Stream.Write(AStr[1], Length(AStr) * SizeOf(AStr));


Это по собственному опыту - нарвался на подобную проблему =(

Цитата(Bose @  20.11.2008,  18:21 Найти цитируемый пост)
Delphi в мире Юникода, часть I: что такое Юникод, зачем он Вам нужен и как с ним работать в Delphi? 
Delphi в мире Юникода, часть II: новые возможности RTL и классы для поддержки Юникода
Delphi в мире Юникода, часть III: Юникодификация Вашего кода 


Очень советую почитать эти статьи...

Автор: Bose 22.11.2008, 13:53
Цитата(Akella @  21.11.2008,  23:52 Найти цитируемый пост)
зачем?

Затем, что есть функции, умеющие работать только с PAnsiChar-ом. Это то с чем я столкнулся когда пытался на скорую руку портировать RxLib.

Автор: Akella 22.11.2008, 13:57
Цитата(aktuba @  22.11.2008,  11:24 Найти цитируемый пост)
Потому что иначе возможны проблемы с обработкой... 

и что полезного можно из этого почерпнуть?

Добавлено через 1 минуту и 56 секунд
Цитата(aktuba @  22.11.2008,  11:24 Найти цитируемый пост)
Очень советую почитать эти статьи...

читал  smile , я же их и выложил на форуме в группе Delphi

Добавлено через 3 минуты и 15 секунд
PChar ведь теперь тоже юникодный

Добавлено через 3 минуты и 46 секунд
Цитата(Bose @  22.11.2008,  13:53 Найти цитируемый пост)
есть функции, умеющие работать только с PAnsiChar

угу, возможно

Добавлено через 6 минут и 10 секунд
Цитата(Bose @  20.11.2008,  17:21 Найти цитируемый пост)
PChar тоже стал юникодным, так что в некоторых местах его придётся заменить на PAnsiChar.

 smile по-моему я подтормаживаю smile 

Автор: Bose 22.11.2008, 16:47
Вот ещё, заметка на тему: http://www.bobswart.nl/Weblog/Blog.aspx?RootId=5:2868.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)