![]() |
![]() ![]() |
![]() |
IUnknown |
![]()
Сообщение
#1
|
![]() a.k.a. volvo877 ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 013 Пол: Мужской Репутация: ![]() ![]() ![]() |
На официальном сайте FPC с 22 мая 2011 г. доступна новая версия компилятора: 2.4.4
Приведу список изменений... Изменения в модулях 1. Модуль OpenSSL Тип EVP_PKEY переименован в PEVP_PKEY. Это название лучше сочетается с другими типами и с оригинальным объявлением на С. Если вы использовали этот тип в своем коде - его надо будет также переименовать. 2. Модуль Graph а) в процедурах Arc и PieSlice всегда подразумевалось соотношение 1:1, невзирая на реальное соотношение для текущего режима. Теперь обе эти процедуры принимают во внимание соотношение сторон (acpect ratio). Причина - совместимость с Борланд Паскалем, более красивое (более округлое) отображение дуг и секторов в режимах, имеющих "причудливые" соотношения (к примеру, режим 640*200, имеющий aspect ratio 4500:10000), лучшая сочетаемость с процедурой Circle, которая и до этого принимала соотношение сторон в расчет. Это изменение коснется вас только в случае, если вы программируете графику для режимов, в которых соотношение сторон отличается от 1:1 (это режимы 320x200, 640x200, 640x350 и 640x400). В остальных случаях изменения не потребуются... б) процедура GraphDefaults больше не сбрасывает текущее соотношение сторон в 1:1. Это также сделано для большей совместимости с BP, это багфикс для приложений, которые вызывают GraphDefaults в нестандартных режимах (с соотношением, отличающимся от 1:1), но хотят по-прежнему использовать компенсацию соотношений. Старое поведение GraphDefaults мешало использованию компенсации. Если вы все-таки хотите сбрасывать текущее соотношение в 1:1 - вызывайте SetAspectRatio(10000, 10000); 3. Многопоточные программы. Методы Suspend и Resume класса TThread являются устаревшими В прежних версиях FPC вызов TThread.Suspend приостанавливал поток (если платформа это поддерживала), а вызов TThread.Resume запускал предварительно приостановленный, или созданный "спящим" поток. Теперь приостановка работающего потока является устаревшим действием. Создавать поток "спящим" по-прежнему можно, но запускать его теперь нужно новым методом TThread.Start. Сделано это для улучшения совместимости с Дельфи 2010 и выше, и по факту того, что произвольная приостановка работающих потоков не поддерживается на большинстве платформ из-за проблем с дедлоками (тупиковыми состояниями). С этими же проблемами связано решение Embarcadero о запрете Suspend/Resume, также подобный функционал был изъят из Java. Итак, для потоков, созданных "спящими" придется заменить Resume на Start. Для приостановки уже работающего потока: перепишите программу без использования этой функции. Если вы хотите писать код, совместимый со старыми версиями Дельфи, пользуйтесь пока методом Resume, он продолжит оставаться работоспособным на протяжении нескольких следующих релизов FPC. 4. Стиль кисти по умолчанию для TFPPixelCanvas В прежних версиях кисть в TFPPixelCanvas имела дефолтный стиль bsClear. Теперь этот стиль изменен на bsSolid. Использование bsSolid как стиля по умолчанию более интуитивно понятно. Кроме того, это тот стиль, который является дефолтным и в LCL (Lazarus Component Library). Итак, если вам требуется использование именно "пустой" кисти - в код необходимо добавить инициализацию созданной кисти значением bsClear. 5. Функция Glut.FreeGlut переименована в UnloadGlut Теперь в FPC используется функционал модуля FreeGlut, и наличие идентификатора FreeGlut в модуле Glut может привести к "столкновению" имен и путанице. Вам придется сделать аналогичную замену в вашем коде. 6. Модуль xmlxsd разделен на xmlxsd и xmlxsdparser В предыдущих версиях модуль xmlxsd содержал функции для парсинга XML xsd и вспомогательные функции для libxml2. Теперь xmlxsd содержит только вспомогательные функции для libxml2, все функции парсера выделены в отдельный модуль xmlxsdparser. Прочесть то же самое по-английски можно здесь: freepascal wiki -> User Changes 2.4.4 Сообщение отредактировано: IUnknown - 9.06.2011 23:06 |
![]() ![]() |
![]() |
Текстовая версия | 6.09.2024 14:05 |