Этот пост начинает серию записей, которая будет описывать процесс перевода большого коммерческого проекта, которым является MyChat, на «новые рельсы». Сейчас проект работает на Delphi 7. Это довольно старая среда, по современным меркам, ей уже больше 10 лет. Поэтому мы начали переход на Delphi XE3, который вышел осенью 2012 года.
Первая проблема, с которой я столкнулся, это невозможность компиляции библиотеки Synapse, которую мы используем для организации связи, в новой среде. Последняя версия библиотеки, которая есть на официальном сайте, не поддерживает Delphi XE3 и модуль synautil.pas отказывается компилироваться из-за того, что отсутствуют переменные TimeSeparator и ShortMonthNames. После копания в документации, оказалось, что этих переменных в Delphi больше нет, они исключены, как потоконебезопасные. Embarcadero рекомендует использовать переменную класса TFormatSettings вместо того, что было раньше.
Итак, поправленный модуль здесь, всё чудесно собирается и работает.
P.S. Не пугайтесь, что в коде переменная класса TFormatSettings создаётся, но ей не делается Free. Пример для переделки взят с официального сайта Embarcadero — тыц. Методы класса static, так что всё Ок.
Спасибо большое!
С этим помогли но теперь другая проблема не отправляются GET и POST запросы с кодом все правильно для справки стоит Delphi 10 Seattle
Здравствуйте. «Не отправляются» — это слишком общая штука 🙂 Всегда есть или ошибка, которая возникает при попытке отправки команды, или ваш код работает не так, как нужно.
А у меня ругается, что не найден файл httpsend.dcu, в скачанном архиве вообще нет ни одного .dcu файла. Как быть?
Это библиотека самого Synapse, добавьте в Delphi (меню Tools, Options, Library).
Как в последней версии 2019 добавить (меню Tools, Options, Library)?
Погуглите, я всё ещё использую XE3.